C# unity 使用光线投射命中信息更改变量
C# unity Changing a variable using ray cast hit information
这个游戏中的相机有一个目标,可以通过点击其他模型来改变,然后将成为相机的焦点,下面的脚本是我到目前为止得到的但是每次我点击游戏中的一个对象目标只是说 none 而不是任何模型。
Ray toMouse = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
bool didHit = Physics.Raycast(toMouse, out hitInfo);
if (didHit)
{
if (hitInfo.collider.tag == "Cell" && Input.GetMouseButtonDown(0))
{
Debug.Log("Cell hit");
target = hitInfo.transform.Find(gameObject.name);
}
}
如果此脚本在相机上,则应该执行以下操作:
GameObject target;
// or
Transform target;
void Update()
{
if(Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, out hit))
{
target = hit.transform.gameObject;
// or
target = hit.transform;
}
}
}
这个游戏中的相机有一个目标,可以通过点击其他模型来改变,然后将成为相机的焦点,下面的脚本是我到目前为止得到的但是每次我点击游戏中的一个对象目标只是说 none 而不是任何模型。
Ray toMouse = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
bool didHit = Physics.Raycast(toMouse, out hitInfo);
if (didHit)
{
if (hitInfo.collider.tag == "Cell" && Input.GetMouseButtonDown(0))
{
Debug.Log("Cell hit");
target = hitInfo.transform.Find(gameObject.name);
}
}
如果此脚本在相机上,则应该执行以下操作:
GameObject target;
// or
Transform target;
void Update()
{
if(Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, out hit))
{
target = hit.transform.gameObject;
// or
target = hit.transform;
}
}
}