Unity开发VR游戏遇CS1061错误:GameObject无TryGetComponet定义
Unity CS1061错误解决:苦无击中敌人脚本问题
错误原因
CS1061错误本质是代码里调用了不存在的方法/属性,你的脚本里有两处拼写错误直接导致了这个问题:
- Kunai脚本中
TryGetComponet拼写错误,正确写法是TryGetComponent(少了字母n) - 变量名
enemyComponet拼写错误,正确是enemyComponent(少了字母n)
此外,Enemy脚本缺少完整的类定义,这也会导致组件无法被识别。
修正后的完整代码
Kunai脚本
private void OnCollisionEnter(Collision collision) { if(collision.gameObject.TryGetComponent<Enemy>(out Enemy enemyComponent)) { enemyComponent.TakeDamage(3); } Destroy(gameObject); }
Enemy(立方体)脚本
using UnityEngine; public class Enemy : MonoBehaviour { [SerializeField] float health, maxHealth = 3f; private void Start() { health = maxHealth; } public void TakeDamage(float damageAmount) { health -= damageAmount; if(health <= 0) { Destroy(gameObject); } } }
额外检查项
- 确保立方体对象上挂载了
Enemy脚本 - 苦无和立方体都要添加
Collider组件,且至少其中一个对象添加Rigidbody组件(否则碰撞事件不会触发) - 脚本文件名必须和类名一致(比如Enemy脚本文件要命名为
Enemy.cs)
内容的提问来源于stack exchange,提问作者powerduck12
相关产品推荐
相关产品推荐

