unityでカーリングのゲームを作っているのですが、どうしてもカーブを再現することができません。
うまくカーブを再現する方法を教えてください。現在のまっすぐ投げるスクリプトは下記のように組んでいます。非常に見にくいコードですみません。どなたか教えてください。よろしくお願いします。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Shot_System_Blue : MonoBehaviour
{
float power = 0; //パワーの初期化
public GameObject Stone;//ストーンを指定
public Text Bst;//投球数を表示するテキスト
GameObject First;//第1投めかを判断するための
public Transform Start;//スタート位置
Slider Pslider;//パワー用スライダー
Slider Aslider;//角度用スライダー
Vector3 v;//パワーと角度を格納
Vector3 r;//回転を格納
int cnt = 0;青ストーンの投球数カウンター
int Counter = 1;//全体の投球数カウンター
public void shot()
{
GameObject Shot_Stone = (GameObject)Instantiate(Stone, Start.transform.position, Quaternion.identity);//ストーンを呼び出す
First = GameObject.Find("Moving_YStone" + Counter);
if (First != null) {
Counter += 1;
}
Shot_Stone.gameObject.name = "Moving_BStone" + Counter;//呼び出したストーンをリネームし番号をつける
cnt += 1;
Bst.text = "Shot : " + cnt;//投球数を表示
Pslider = GameObject.Find("BPSlider").GetComponent<Slider>();//PSliderを検索し、そのデータを代入
power = Pslider.value * 5;//パワーにスライダー値×5の力を代入
v.x = power;//パワーをXに代入
v.y = 0;// 加える力にy情報は不要なので0を代入
Aslider = GameObject.Find("BASlider").GetComponent<Slider>();//ASliderを検索し、そのデータを代入
float Angle = Aslider.value * -1;//加える力に方向をつけるためにAsliderの値を逆転させる
v.z = Angle;
if(Angle < 0)
{
r.z = -200;
} else {
r.z = 200;
}
Shot_Stone.GetComponent<Rigidbody>().AddForceAtPosition(v,r);//ストーンにv分の力とr分の回転を加える
Counter += 2;
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/04 23:45
2016/02/05 00:13
2016/02/06 04:50
2016/02/09 09:02
2016/02/09 11:20
2016/02/09 11:47
2016/02/09 12:42
2016/02/09 13:10
2016/02/09 13:55
2016/02/09 14:34