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点击座标方向的射线
其他较特别的应用必须去尝试有碰到在补充