Unity GameObject OnclickEvent

时间:2019-11-16 15:32:22

标签: c# unity3d

你好,我在团结一致的基础上上课,

public class Path : MonoBehaviour, IPath
{
 public GameObject Quad { get; set; } 
 public Guid Id { get; set; }

 public Path( float sizeX, float sizeY)
 {
     Quad = GameObject.CreatePrimitive(PrimitiveType.Quad);
     Id = Guid.NewGuid();
     Helpers.ChangeSize(Quad, sizeX, sizeY);
 }
}

它在运行时被调用。

我想在GameObject Quad(或此类)上设置一个OnClick事件,该事件调用一个类的另一个实例(附加到主摄像头)的方法,并将其ID发送给它。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果要检测对游戏对象的单击,则只要玩家单击,就需要使用射线广播。

if (Input.GetMouseButtonDown (0)) {    
         var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit hit;

         if (Physics.Raycast(ray, out hit, 100)) {
             // whatever tag you are looking for on your game object
             if(hit.collider.tag == "Idk") {                         
                 //Call method on camera                      
             }
         }    
     }

您必须将其放入某个地方的更新方法中。最好是某种InputManager。您可以了解有关Raycast Here

的信息