unity3d 脚本基础认识8-Ray 光射线

unity3d 脚本基础认识8-Ray 光射线

基本结构: Ray( Vector3 (开始座标), Vector3 (设定方向) )

会算出一条从开始座标~往设定方向持续延伸的无穷远射线

常用于某段距离之间的限制或着之外的限制

例: 假设场景里物件都距离Camera 10以内只有背景图超过10

If(Input.GetMouseButton(0)){

var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePostion);

if( Physics.Raycast( ray , 10 )){ 执行距离10以内物件控制 }

if( ! Physics.Raycast( ray , 10 )){ 执行距离10以外背景控制}}

此方法必须整个场景距离10内只有一样物件

否则点击下去所有点击到距离10以内物品都算是条件内无法做针对特定的控制

想取得某特定物件被点击到的侦测

If(Input.GetMouseButton(0)){

var ray : Ray = Camera.main.ScreenPointToRay(Input.mousePostion);

var hit : RaycastHit;

if( collider.Raycast( ray , hit , 10 )){ 执行距离10以内点击到物件的控制}}

如果以此脚本来说这必须放置在被点击到的物件上

Camera.main.ScreenPointToRay(Input.mousePostion)

抓取一条从Camera座标开始往Mouse点击座标方向的射线

其他较特别的应用必须去尝试有碰到在补充

文章转自:http://www.unity3d8.com/content/%E8%84%9A%E6%9C%AC%E5%9F%BA%E7%A1%80%E8%AE%A4%E8%AF%868-%E5%85%89%E5%B0%84%E7%BA%BF

你可能感兴趣的:(c,vector,脚本)