私は武器を使用するキャラクターを持っており、現在私はキャラクターの位置にスポーンするように設定しています。私はそのポジションを自分のキャラクターに少しプラス(x軸)にしたい。私はこれを行う方法の手掛かりがありませんし、Googleで答えを見つけることができませんでした。私は初心者ですので、具体的にしてください。ここに私のコードは次のとおりです。ユニティでUnity C#は "position + x、y、z"をインスタンス化しますか?
public float speed = 2f;
Animator anim;
private Rigidbody2D rb2d;
public float jumpHeight = 20f;
public GameObject weapon;
private Vector2 playerPos;
public GameObject player;
private void Start()
{
anim = GetComponent<Animator>();
rb2d = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update() {
playerPos = player.transform.position;
if (Input.GetKey(KeyCode.D))
{
anim.SetInteger("State", 1);
transform.Translate(new Vector2(1f * speed * Time.deltaTime, 0f));
}
if (Input.GetKeyUp(KeyCode.D))
{
anim.SetInteger("State", 3);
}
if (Input.GetKey(KeyCode.A))
{
anim.SetInteger("State", 2);
transform.Translate(new Vector2(-1f * speed * Time.deltaTime, 0f));
}
if (Input.GetKeyUp(KeyCode.A))
{
anim.SetInteger("State", 4);
}
if (Input.GetKey(KeyCode.P))
{
rb2d.AddForce(Vector2.up * jumpHeight);
}
if (Input.GetKeyDown(KeyCode.O))
{
Instantiate(weapon, playerPos, Quaternion.Euler(0, 0, -40));
}
}
をあなたはあなたの空のオブジェクトを追加することができますそれを参照として変換します。 –
if節の量を置き換える(または少なくとも減らす)べきです。 [Delagate](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/)、[Action](https://msdn.microsoft.com/en-us/)を参照してください。 us/library/system.action)と[Func](https://msdn.microsoft.com/en-us/library/bb549151(v=vs.110).aspx) – Bakudan