使物件可以追隨滑鼠,
因為寫的很簡潔,會有一些漏洞,
例如場上有一間房子,以2.5D的視角來看,滑鼠是無法避開房子的
=============簡單版================
var hit: RaycastHit;
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast(ray, hit))
{
transform.LookAt(Vector3(hit.point.x,transform.position.y,hit.point.z));
}
=============穿過物體版===============
public var collisionLayers : LayerMask = -1; //碰撞層
function Start ()
{
}
function Update ()
{
var hit: RaycastHit;
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast(ray, hit ,100, collisionLayers.value))
{
player.transform.LookAt(Vector3(hit.point.x,transform.position.y,hit.point.z));
}
}
//到Unity內,新增一個Layer給地板,把這腳本貼到角色身上,會有一個 collisionLayers的選項,只打勾地板的Layer就可以了。
因為寫的很簡潔,會有一些漏洞,
例如場上有一間房子,以2.5D的視角來看,滑鼠是無法避開房子的
解決方式有很多種,其中一種是讓Ray只與地板碰撞,方法我寫在最下面。
=============簡單版================
var hit: RaycastHit;
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast(ray, hit))
{
transform.LookAt(Vector3(hit.point.x,transform.position.y,hit.point.z));
}
=============穿過物體版===============
public var collisionLayers : LayerMask = -1; //碰撞層
function Start ()
{
}
function Update ()
{
var hit: RaycastHit;
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast(ray, hit ,100, collisionLayers.value))
{
player.transform.LookAt(Vector3(hit.point.x,transform.position.y,hit.point.z));
}
}
//到Unity內,新增一個Layer給地板,把這腳本貼到角色身上,會有一個 collisionLayers的選項,只打勾地板的Layer就可以了。
留言
張貼留言