我正在尝试学习 Unity(所以请原谅我的新手)。我已经将我的项目设置为 2d,让一个精灵四处移动,我正在尝试发射弹丸(我很感激有很多这样的问题,但在尝试了很多之后我就是无法让它工作解决方案)。在物理方面,我是一个完整的小块!
这是我非常简单的脚本:
using UnityEngine;
using System.Collections;
public class PlayerScript : MonoBehaviour {
public Transform mObject;
public Transform mProjectile;
public Vector2 mProjectileSpeed = new Vector2 (10f, 10f);
public Vector2 mSpeed = new Vector2(15, 15);
private Vector2 mMovement;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
float inputX = Input.GetAxis("X");
float inputY = Input.GetAxis("Y");
mMovement = new Vector2 (mSpeed.x * inputX, mSpeed.y * inputY);
if (Input.GetButton ("Fire1"))
Shoot ();
}
void Shoot(){
GameObject clone = (GameObject)Instantiate (mProjectile, rigidbody2D.transform.position, Quaternion.identity);
clone.rigidbody2D.velocity = (clone.transform.forward * 1000);
}
void FixedUpdate(){
rigidbody2D.velocity = mMovement;
}
}
这就是它正在做的事情:
没有向实例化对象添加任何力,它会从我的精灵的两侧射出,我根本不明白。
我确实在 Unity 回答网站上找到了一个解决方案,该解决方案说IgnoreCollider
以防两个盒子对撞机的结果相互冲突,但这并没有什么不同。
我确定我在做一些完全愚蠢的事情,但我该怎么做呢?
非常感谢!