纳金网

标题: 鼠标拾取代码总结 [打印本页]

作者: 狂风大尉    时间: 2015-2-28 23:33
标题: 鼠标拾取代码总结

关于鼠标拾取代码,点击物体可显示所点击物体名称
将下面的javascript代码挂在任何一个对象上面均可以实现,当鼠标点击时打印鼠标所点击的对象的名称
  1. function Update ()

  2. {

  3. if (Input.GetMouseButton (0))

  4. {

  5. var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

  6. var hit : RaycastHit;

  7. if (Physics.Raycast (ray, hit))

  8. {

  9. Debug.DrawLine (ray.origin, hit.point);

  10. print(hit.collider.gameObject.name);

  11. }

  12. }

  13. }

  14. ************************************************************************

  15. c#代码会有些不同

  16. 转换成c#代码如下

  17. 首先定义 public  RaycastHit hit;

  18. if (Input.GetMouseButton (0))

  19. {

  20. Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

  21. ****************************************************************

  22. 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

  23. Assets/scripts/SelectTarget.cs(26,21): error CS1620: Argument `#2' is missing `out' modifier

  24. ****************************************************************

  25. if (Physics.Raycast (ray, out hit))   //注意这个地方与javascript不同,需要加OUT不然会报错,错误如******之间的提示

  26. {

  27. Debug.DrawLine (ray.origin, hit.point);

  28. }

  29. if(hit.collider.gameObject.name==“所要点击的物体名称”)

  30. {

  31. Debug.Log(“选中了”+hit.collider.gameObject.name);

  32. // *************执行什么操作代码放这即可

  33. *************************比如让选中的物体颜色变为红色

  34. GameObject  b = Gameobject.Find(hit.collider.gameObject.name);

  35. b.renderer.material.color = Color.red; //比如将颜色变为红色

  36. }

  37. }
复制代码





欢迎光临 纳金网 (http://www.narkii.com/club/) Powered by Discuz! X2.5