实现一个例子讲解:鼠标移入一个GameObject时,此GameObject变成红色,移出时变回白色。
unsing UnityEingine.EventSystem;
public Renderer rendererDemo;
void Start()
{
//获得该对象的渲染器
rendererDemo = GetComponent<Renderer>();
}
void OnMouseEnter()//鼠标移进
{
//判断当前鼠标是否位于UI对象上
if(EventSystem.current.IsPointerOverGameObject()==false)
rendererDemo.marterial.color = Color.red;
}
void OnMouseExit()//鼠标移出
{
rendererDemo.marterial.color = Color.white;
}
- 注意事项:如果在此对象的周围受到别的对象的碰撞体的影响,从而使得,此对象无法感应到鼠标的射线投射,可以先把周围对象的trriger勾上,再依此点击Edit->ProjectSetting->physics->Queries hit triggers取消勾选。Queries hit triggers作用在于,默认世界中所有带有触碰检测Trigger的物体都会返回一个碰撞结果。在某些场景中,当需要使用鼠标的光线投射不受某些对象的trriger影响时,可以取消勾选Queries hit triggers。