私は 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;
}
}
そして、これはそれがしていることです:
インスタンス化されたオブジェクトに力が加えられておらず、スプライトの両側が飛び出していますが、これはまったく理解できません。
IgnoreCollider
2 つのボックス コライダーの結果が競合する場合に備えて、Unity の回答サイトで解決策を見つけましたが、違いはありませんでした。
私は完全に愚かなことをしていると確信していますが、どうすればこれを行うことができますか?
どうもありがとう!