210112 学习笔记UNITY的使用

本文是关于Unity开发的学习笔记,主要介绍了协程的使用,包括带参数的协程和通过字符串控制协程;深入探讨了四元数(Quaternion)的概念及其在旋转中的应用;讲解了委托的添加与卸载,以及事件作为特殊委托的应用。
摘要由CSDN通过智能技术生成

1.协程:

1).带参数的协程:

using UnityEngine;
using System.Collections;
public class CoroutinesExample : MonoBehaviour
{
    public float smoothing = 1f;
    public Transform target;


void Start ()
{
    StartCoroutine(MyCoroutine(target));
}


IEnumerator MyCoroutine (Transform target)
{
    while(Vector3.Distance(transform.position, target.position) > 0.05f)
    {
        transform.position = Vector3.Lerp(transform.position, target.position, 					smoothing * Time.deltaTime);

        yield return null;
    }

    print("Reached the target.");

    yield return new WaitForSeconds(3f);

    print("MyCoroutine is now finished.");
}

}
2).通过字符串控制协程
StopCoroutine(“Movement”);
StartCoroutine(“Movement”, target);

2.四元数:(Quaternion)

	1)LookRotation函数:
		 LookRotation(Vector3 target,Vector3 upFocus)
		 第一个参数代表要旋转的角度,第二个参数该次旋转之中Z轴的方向。
	2).slerp函数:(球型插值函数,能够实现轨道效果):
	using UnityEngine;
	using System.Collections;

	public class GravityScript : MonoBehaviour 
	{
		public Transform target;
	 	void Update () 
		{
			//得到目标的方向向量
    		Vector3 relativePos = (target.position + new Vector3(0, 1.5f, 0)) - transform.position;
    		//得到四元数从而得到旋转的角度
   		 	Quaternion rotation = Quaternion.LookRotation(relativePos);
			
    			Quaternion current = transform.localRotation;

    			transform.localRotation = Quaternion.Slerp(current, rotation, Time.deltaTime);
    			transform.Translate(0, 0, 3 * Time.deltaTime);//转动对象之后稍微向前移动一下。
}

}
具体可以看http://blog.csdn.net/kfqcome/article/details/10729551
里面有对于四元数的介绍
3)identity: 初始值

3.委托(delegates):

	相当于C++之中的函数指针,能通过他找到具体函数

委托的添加

using UnityEngine;
	using System.Collections;
	
	public class MulticastScript : MonoBehaviour 
	{
   
	    delegate void MultiDelegate();
	    MultiDelegate myMultiDelegate;


    void Start () 
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值