Unity基础知识点

吃金币

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);
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

colorful_stars

您是我见过全宇宙最可爱的人!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值