tes*_* tm 1 c# unity-game-engine
我有一个脚本,可以让游戏对象在某个高度移动,例如在 200 处。在地形上,我有另一个游戏对象。我希望当他开始进入另一个游戏对象区域时移动的第一个游戏对象做某事。
喜欢
void OnTriggerEnter(Collider other)
{
if (other.gameObject.name == "Base")
{
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为变换和“基础”之间没有物理碰撞。变换高度为 200。
我也尝试使用 Raycast hit。在脚本的顶部,我添加了:
Collider col;
Run Code Online (Sandbox Code Playgroud)
然后在更新
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (col.Raycast(ray, out hit, 100.0F))
{
Debug.Log("Hit !");
}
Run Code Online (Sandbox Code Playgroud)
但再次转变是在空中。这个想法是在转换开始进入 Base 区域后做一些事情。
实现这一目标的简单方法:
Box Collider组件(isTrigger设置为true)使用以下代码将脚本附加到您的移动游戏对象:
using UnityEngine;
public class CheckBaseCollider : MonoBehaviour {
public GameObject baseCollider;
private void OnTriggerEnter(Collider other) {
if (other.gameObject == baseCollider) {
Debug.Log("Entered");
}
}
}
Run Code Online (Sandbox Code Playgroud)你很高兴去。
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |