[英]shoot to mouse click direction unity3D
我正在学习unity3D我正在创建一个简单的游戏,玩家需要射击从天上掉下来的敌人。 我已经做了一切,但是当我尝试拍摄播放器在屏幕上单击的位置时,出现此错误NullReferenceException:对象引用未设置为对象的实例。 有趣的是,正在将球射向点击,但由于异常,游戏突然退出。 我的播放器附有以下代码:
if(Input.GetMouseButtonDown(0)){
shootDirection = Input.mousePosition;
shootDirection.z = 0.0f;
shootDirection = Camera.main.ScreenToWorldPoint (shootDirection);
shootDirection = shootDirection - transform.position;
Rigidbody2D bulletInstance = Instantiate(bulletPrefab, transform.position, Quaternion.Euler(new Vector3(0,0,0))) as Rigidbody2D;
bulletInstance.velocity = new Vector2(shootDirection.x * speed, shootDirection.y * speed);
错误指向我在控制台中的这一行:
bulletInstance.velocity = new Vector2(shootDirection.x * speed, shootDirection.y * speed);
如果有人可以指出我的错误在哪里或发生了什么,这将非常有帮助。
我认为问题在于您想说的是bulletInstance
是具有Rigidbody2D的bulletInstance
,而不是一个。
未经测试的代码:
GameObject bulletInstance = Instantiate(...) as GameObject;
Rigidbody2D rb2d = bulletInstance.getComponent<Rigidbody2D>();
rb2d.velocity = new Vector2(...);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.