吃金币
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
foreach (GameObject destructor in destructors)
{
destructor.GetComponent<Rigidbody>().isKinematic = false;
}
}
}
随机产生预制体
private float a;
private float b;
private float c;
private float d;
private float e;
private float f;
private float g;
public GameObject wt;
public GameObject newt;
// Use this for initialization
void Start () {
Debug.Log(a);
Debug.Log(b);
Debug.Log(c);
}
// Update is called once per frame
void Update () {
a=Random.Range(-100f, 100f);
b = Random.Range(-100f, 100f);
c = Random.Range(-100f, 100f);
d = Random.Range(0f, 1f);
e = Random.Range(0f, 1f);
f = Random.Range(0f, 1f);
newt = Instantiate(wt, new Vector3(a , b, c), Quaternion.identity);
newt.AddComponent<Rigidbody>().AddForce(Vector3.up * 1000f);
newt.GetComponent<MeshRenderer>().material.color = new Color(d, e, f);
天体的公转
//原理:地球围绕着太阳转,月球围绕着地球转,因此,此方法应使用于地球以及月球上。
//由于地球绕着太阳转,因此应将地球的Target设置为太阳;而月球围绕着地球转,因此应将月球的Target设置为地球
public class RotateAround : MonoBehaviour {
//定义一个公有的变量,确定绕着转的轴心
public Transform Target;
/*注意:Transform方法位于GameObject方法下,因此,若定义Target为GameObject的类型的变量,则在使用的时候定义位置为
Target.Transform.position
*/
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//RotateAround:当前对象围绕着...旋转。其方法包含三个变量:(对象的位置,对象的轴,旋转的度数)
//月球地球公转
//this.transform.RotateAround(Target.position, Vector3.up, 90 * Time.deltaTime);
//大风车
this.transform.RotateAround(Target.position,Vector3.forward,90*Time.deltaTime);
}
}
添加力
private Rigidbody rd;
// Use this for initialization
void Start () {
rd = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButton(0))
{
rd.AddForce(transform.right * 100f);
//rd.AddRelativeForce(Vector3.forward * 15f);//相对力
}
}
手写代码控制物体(人物)移动
private Rigidbody rd;
// Use this for initialization
void Start () {
rd = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
if (Input.GetKey(KeyCode.W))
{
rd.MovePosition(transform.position + -Vector3.left * 0.5f);
//rd.MovePosition(transform.position + Vector3.forward * 0.5f);
}
if (Input.GetKey(KeyCode.S))
{
rd.MovePosition(transform.position + Vector3.left * 0.5f);
//rd.MovePosition(transform.position + -Vector3.forward * 0.5f);
}
if (Input.GetKey(KeyCode.A))
{
rd.MovePosition(transform.position + Vector3.forward * 0.5f);
//rd.MovePosition(transform.position + Vector3.left * 0.5f);
}
if (Input.GetKey(KeyCode.D))
{
rd.MovePosition(transform.position + -Vector3.forward * 0.5f);
//rd.MovePosition(transform.position + -Vector3.left * 0.5f);
}
if (Input.GetMouseButton(0))
{
rd.AddForce(transform.right * 100f);
}
if (Input.GetMouseButton(1))
{
rd.AddForce(-transform.right * 100f);
}
if (Input.GetMouseButton(2))
{
rd.AddForce(transform.up * 100f);
}
}