给每个预制件自己的速度

时间:2016-02-24 14:26:58

标签: c# unity3d 2d unity5

正在为UNITY3D中的太空射击游戏构建星空背景模拟。 在c#中,我建立了一个看起来像点的预制件的瞬间。虽然x轴上随机点上的多个点的生成非常完美但我想添加一件事。

随机速度。问题是我不知道如何给每个预制件提供自己的速度,而不是被下一个随机化覆盖。

backgroundloop.cs

using UnityEngine;
using System.Collections;

public class backgroundloop : MonoBehaviour {
    public GameObject star;
    public float spawnTime;
    private GameObject starPrefab;
    private float timestamp;
    //public float hoogte = Random.Range(-1.01f,1.1f);
    //public float rotationPrefab = transform.localEulerAngles.z;



    // Use this for initialization
    void Start () {


    }

    // Update is called once per frame
    void Update () {
        if (Time.time > timestamp)  {
            starPrefab = Instantiate 
            (star, new  Vector3(7,Random.Range(-5.0f,5.0f),0), 
            Quaternion.Euler(0, 0, 0)) as GameObject;
            timestamp = Time.time + spawnTime;
            }   
        }
    }

问题出现在这个脚本中: prefabMovement.cs

using UnityEngine;
using System.Collections;

public class prefabMovement : MonoBehaviour {
    float speed = Random.Range (-3f, -0.1f);


    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

        transform.Translate (new Vector3(-1f,0,0) * Time.deltaTime);
        if (transform.position.x < -6.8) {
            Destroy (this.gameObject);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

咦?那么速度会被覆盖并最终在所有实例化的预制件上变得相同?

如果在Start方法中初始化speed变量,可能会有所帮助。