【发布时间】:2015-12-26 20:43:38
【问题描述】:
我正在处理一个 2D 项目,我正在尝试使用代码中已经指定的两个不同位置来实例化两个不同的对象。每个对象应从两个位置中选择一个随机值。所以每次玩家运行游戏时,对象都可以交换位置。我的问题是有时这两个对象会选择相同的确切位置,这是错误的。以下是在游戏中应该起作用的仅有的两种可能性:
可能性 1: 1
可能性 2: 2
这是我正在使用的代码:
using UnityEngine;
using System.Collections;
public class Randomizer : MonoBehaviour
{
public GameObject[] prefab;
int prefab_num;
Vector3[] positions;
Vector3 pos1;
Vector3 pos2;
void Start(){
prefab_num = Random.Range(0,1);
positions = new Vector3[]{new Vector3 (-5, 0f, 0f), new Vector3 (5, 0f, 0f)};
pos1 = positions [Random.Range (0, positions.Length)];
pos2 = positions [Random.Range (0, positions.Length)];
Instantiate (prefab [0], pos1, Quaternion.identity);
Instantiate (prefab [1], pos2, Quaternion.identity);
}
void Update(){ // Here I am trying to prevent objects from spawning on each other but it didn't work for me
if (pos1 == positions [0] && pos2 == positions [0]) {
prefab [prefab_num].transform.position = positions [1];
} else if (pos1 == positions [1] && pos2 == positions [1]) {
prefab [prefab_num].transform.position = positions [0];
}
}
}
【问题讨论】:
标签: c# random unity3d positioning instantiation