我的错误是
CS0029 无法将类型“UnityEngine.GameObject”隐式转换为“UnityEngine.Vector3”
代码:
{
GameObject snowball = GameObject.Find("LaunchSlingshotProjectile").GetComponent<SnowballThrowable>().projectilePrefab;
GorillaLocomotion.Player.Instance.transform.position = snowball;
}
我尝试将它添加到变量中,但它什么也没做
GameObject snowball = GameObject.Find("LaunchSlingshotProjectile")
现在雪球是一个游戏对象;
SnowballThrowable sbthrowable = snowball.GetComponent<SnowballThrowable>();
sbthrowable 是一个组件。
GameObject tile = sbthrowable.projectilePrefab;
tile是自己定义的GameObject变量。
Vector3 pos = tile.transform.position;
pos变量的类型是Vector3, 只能给相同类型的变量赋值.
GorillaLocomotion.Player.Instance.transform.position = pos;
试试
GorillaLocomotion.Player.Instance.transform.position = GameObject.Find("LaunchSlingshotProjectile").GetComponent<SnowballThrowable>().projectilePrefab.transform.position;
你的错误是你试图设置位置
GorillaLocomotion.Player.Instance.transform.position = ...
这是一个 Vector3,你正在为它传递一个 GameObject,所以编译器不理解。
一个技巧是将任何
GameObject.Find("LaunchSlingshotProjectile")
存储在变量中,这样您就不会一直执行此操作,因为查找速度很慢。