やりたいことはボールが真縦、真横になった時にラケットで跳ね返して斜めに飛んでいくようにすることと、ボールが異常に早くなってしまったときに発射された時と同じスピードに戻すです。UnityもC#も始めてから3か月ほどしかたってないので命令文を把握しきれていません。この質問は調べてもJavaScriptのものが出てきてしまっていいものがなかったためさせていただきました。
using
1using System.Collections.Generic; 2using UnityEngine; 3 4public class Ball : MonoBehaviour { 5 private float speed = 6.5f; 6 7 // Use this for initialization 8 void Start() 9 { 10 11 this.GetComponent<Rigidbody>().AddForce( 12 (transform.forward + transform.right) * speed, 13 ForceMode.VelocityChange);//初速を加える 14 15 } 16} 17 18コード
using
1using System.Collections.Generic; 2using UnityEngine; 3 4public class Block : MonoBehaviour { 5 6 7 8 void OnCollisionEnter(Collision collision) 9 { 10 //衝突判定 11 if(collision.gameObject.tag == "Ball") 12 { 13 14 //相手のタグがBallならば、自分を消す 15 Destroy(this.gameObject); 16 } 17 18 } 19} 20 21コード
using
1using System.Collections.Generic; 2using UnityEngine; 3 4public class Racket : MonoBehaviour { 5 6 private float accel = 1000.0f;//加える力の大きさ、数字が大きいほど機敏に動く 7 8 9 void Start () { 10 11 } 12 13 14 void Update () { 15 16 //力を加える 17 this.GetComponent<Rigidbody>().AddForce( 18 transform.right * Input.GetAxisRaw("Horizontal") * accel,//左右の制御 19 ForceMode.Impulse);//瞬時に力を加える 20 21 } 22} 23 24コード
回答2件
あなたの回答
tips
プレビュー