Unity3d 札记-Let's try shooting 知识点汇总
1\LineRenderer
LineRenderer是用来在3d场景画直线的一个工具。
public LineRenderer laserline; laserline.SetPositon(0,startposition); laserline.SetPositon(1,endposition);//设置结束位置startpositon,endposition均为Vector3 ,空间三维坐标
laserline.enabled(true); laserline.enabled(false);//设置 线是否有效
2\Camera.ViewportToWorldPoint (new Vector3(0.5f, 0.5f, 0.0f));
作用:将以Camera为参照系的坐标,转换到空间三维坐标
Viewport space is normalized and relative to the camera. The bottom-left of the camera is (0,0); the top-right is (1,1). The z position is in world units from the camera.
3\Physics.Raycast()
这个方法用来发出射线
public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers, QueryTriggerInteraction queryTriggerInteraction = QueryTriggerInteraction.UseGlobal);
origin 起点
direction 方向
maxDistance 射程
这里用的是 Physics.Raycast(rayOrigin,fpsCam.transform.forward, out hit, weaponRange)
out 关键字用来 导出一个 RaycastHit 对象, 这个对象是 可能的被击中对象 GameObject
4\IEnumerator - WaitForSeconds - StartCoroutine
()
WaitForSeconds 是一个对象
WaitForSeconds duration = new WaitForSeconds( float time );//设置延时时间
如何使用 ? 写一个方法 以IEnumerator为返回值 ,然后在需要延时的地方 StartCoroutine(IEnumerator funciton());
示例:
IEnumerator Sample(){
WaitForSeconds duration = new WaitForSeconds( 0.5f );//设置延时时间
DisplayText.text="testing……";
yied return duration;//这句一定不能少
}
StartCoroutine(Sample());
5\AudioSource 的使用
public AudioSource hitSound; hitSound.play();