lvmengmeng

每天坚持进一步一点点

鼠标拾取代码总结
关于鼠标拾取代码,点击物体可显示所点击物体名称
***************************************************************************
将下面的javascript代码挂在任何一个对象上面均可以实现,当鼠标点击时打印鼠标所点击的对象的名称
function Update ()   
{  
    if (Input.GetMouseButton (0))   
    {  
        var ray = Camera.main.ScreenPointToRay (Input.mousePosition);  
        var hit : RaycastHit;  
        if (Physics.Raycast (ray, hit))   
        {  
            Debug.DrawLine (ray.origin, hit.point);  
            print(hit.collider.gameObject.name);  
        }  
    }  
} 
************************************************************************
c#代码会有些不同
转换成c#代码如下
首先定义 public  RaycastHit hit;
if (Input.GetMouseButton (0))   
    {  
       Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);  
        
****************************************************************
Assets/scripts/SelectTarget.cs(26,21): error CS1502: The best overloaded method match for `UnityEngine.Physics.Raycast(UnityEngine.Ray, out UnityEngine.RaycastHit)' has some invalid arguments
Assets/scripts/SelectTarget.cs(26,21): error CS1620: Argument `#2' is missing `out' modifier
****************************************************************
        if (Physics.Raycast (ray, out hit))   //注意这个地方与javascript不同,需要加OUT不然会报错,错误如******之间的提示
        {  
            Debug.DrawLine (ray.origin, hit.point);  
        } 
        
         if(hit.collider.gameObject.name=="所要点击的物体名称") 
         {
          Debug.Log("选中了"+hit.collider.gameObject.name);
          // *************执行什么操作代码放这即可
*************************比如让选中的物体颜色变为红色
   GameObject  b = Gameobject.Find(hit.collider.gameObject.name);
          b.renderer.material.color = Color.red; //比如将颜色变为红色
         }
    }  
		
		


            
阅读更多
文章标签: unity3d 鼠标拾取
个人分类: unity
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

鼠标拾取代码总结

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭