- 897 名前:名前は開発中のものです。 mailto:sage [2016/02/27(土) 16:23:02.61 ID:x8pD4Atx.net]
- >>879
2Dとかやってないのでアレだが 1については>>880のいう通り。unity的なセオリーとしては左右はMovePositionでやる、って感じか? 左右については例えばHorizontalのポジティブネガティブに割り当ててGravityを1とかにして Axisを使えばピタリと止まることもなくなる。 2についてはpubulic Transform childOb;とかで変数をもっておいて そこにインスペクターで子供オブジェクトをD&Dしておく、というのがUnity的なセオリーとはいえる。 名前が確定していればStart内でTransform.Findでもいい。 public float kickPower=0;//移動とジャンプの距離 public LayerMask Check;//接地判定で判定するためのレイヤーを取得 private bool GROUNDCHECK = false; public Transform childObj;//ここに子供をD&D. Rigidbody2D thisRigid; void Start(){ thisRigid=GetComponent<Rigidbody2D>(); childObje=transform.Find("Child");//名前が判っていれば. } void FixedUpdate () {//jump処理 GROUNDCHECK = Physics2D.Linecast(transform.position,childObj, Check); if (GROUNDCHECK&&Input.GetButtonDown("Jump")) { thisRigid.AddForce(Vector2.up * kickPower,ForceMode2D.Impulse); } thisRigid.MovePosition(thisRigid.position+Vector2.right *Input.GetAxis("Horizontal")* kickPower*Time.deltaTime); }
|

|