2016-07-30 17 views
0
using System; 
using UnityEngine; 
using System.Collections; 
using UnityStandardAssets.Characters.ThirdPerson; 

public class Multiple_objects : MonoBehaviour { 

    public GameObject prefab; 
    public GameObject[] gos; 
    public int NumberOfObjects; 
    private ThirdPersonCharacter[] thirdPersonCharacter; 
    private Animator[] _animator; 
    private int count = 0; 

    void Awake() 
    { 
     Vector3 v3 = prefab.transform.position; 
     _animator = new Animator[NumberOfObjects]; 
      gos = new GameObject[NumberOfObjects]; 
     for(int i = 0; i < gos.Length; i++) 
     { 
      count = count + 2; 
      GameObject clone = (GameObject)Instantiate(prefab, Vector3.zero, Quaternion.identity); 
      gos [i] = clone; 
      gos [i].transform.position = new Vector3 (v3.x - count, v3.y, v3.z); 
      _animator [i] = gos[i].GetComponent<Animator>(); 
      Math.Round(Random 

Wenn ich Punkt nach dem Random wie: Random eingeben. Ich habe nur Equals und ReferenceWarum existiert die Eigenschaft Range nicht in der Klasse Random in der Einheit?

Und wenn ich eine Variable von Random zum Beispiel zu erstellen:

Random _random; 

i Geben Sie dann _random. Ich bekomme mehr Eigenschaften, aber nicht Reichweite.

+0

Nur ein schamloser Stecker meines [RandomGenerator] (https://github.com/chanibal/RandomGenerator) Dienstprogramm, es löst Ihr Problem mit einer instanziierbaren 'Random' Klasse und bietet eine bessere Kontrolle über die Zufälligkeit von Werten. –

Antwort

1

Sie sind sowohl die UnityEngine und System-Namespace verwenden. Beide dieser Namespaces enthalten eine Random Klasse, so dass Visual Studio/Unity nicht wissen, welche Sie verwenden möchten. Um festzulegen, welche zufällig die Sie verwenden möchten, würden Sie dies einfach tun:

UnityEngine.Random.Range(0.0f, 5.0f); 
1

Warum die Eigenschaft Bereich nicht in der Klasse Random in Einheit vorhanden?

Zufall _random; _random.Rand ...

Range ist eine static Funktion in der Random Klasse. Sie müssen keine Instanz der Klasse erstellen, um statische Funktionen innerhalb von dann zu verwenden. Sie rufen statische Funktionen direkt auf.

Dies sollte es tun: Random.Range(0f,3f);

Wenn Sie die Random' is an ambiguous reference between System.Random‘und UnityEngine.Random' error then that's because you have using System bekommen,` (die Sie in Ihrem Code haben), und Sie deshalb müssen verwenden, um die vollständigen Namespace um auf die Zufallsfunktion von Unity zuzugreifen.

UnityEngine.Random.Range(0f, 3f); 
1

schreiben UnityEngine.Random.Range

Sie haben den Namensraum zu klären.

Sofern Sie die .net Zufall wollen (in diesem Fall sehen Sie die andere Antwort)