iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0
自我挑戰組

從0開始的UnityAR手機遊戲開發系列 第 28

[第二十八天]從0開始的UnityAR手機遊戲開發-虛擬搖桿 Joystick 02

新增一個C# Sprite並命名為PlayerController後開始撰寫程式碼

using UnityEngine;

public class PlayerController : MonoBehaviour
{
	private Rigidbody m_rigidbody;

	public string horizontalAxis = "Horizontal";
	public string verticalAxis = "Vertical";

	private float inputHorizontal;
	private float inputVertical;

	void Awake()
	{
		//抓取掛此腳本物件的Rigidbody
		m_rigidbody = GetComponent<Rigidbody>();
	}

	void Update()
	{
		//抓取方向的數值
		inputHorizontal = SimpleInput.GetAxis(horizontalAxis);
		//抓取前進後退的數值
		inputVertical = SimpleInput.GetAxis(verticalAxis);

		//轉彎
		transform.Rotate(0f, inputHorizontal * 0.5f, 0f);
		//前進或後退
		m_rigidbody.AddRelativeForce(new Vector3(0f, 0f, inputVertical) * 30f);

		//前進的數值不等於0的話
		if (inputVertical != 0)
		{
			//rigidbody開始運作
			m_rigidbody.WakeUp();
			//切換小龍的奔跑動畫
			GetComponent<Animation>().Play("sj001_run");
		}
		else
		{
			////切換小龍的待機動畫
			GetComponent<Animation>().Play("sj001_wait");
			//rigidbody停止運作
			m_rigidbody.Sleep();
		}
	}
}

打開SJ001的Inspector點擊Add Component新增Rigidbody和Box Collider,將剛剛寫好的C#腳本拖曳給SJ001。
點擊Box Collider的Edit Collider按鈕Scene會出現一個綠色正方體的邊框,拖曳邊框裡面的正方形調整它的大小。
https://ithelp.ithome.com.tw/upload/images/20211012/20140569cDW2bzXuEH.png

放在SJ001的PlayerController腳本兩個Axis名稱必須和Joystick的Axis名稱相同
https://ithelp.ithome.com.tw/upload/images/20211012/20140569sFaL81jYP5.png


下一章節會教攻擊按鈕和UI血條


上一篇
[第二十七天]從0開始的UnityAR手機遊戲開發-虛擬搖桿 Joystick 01
下一篇
[第二十九天]從0開始的UnityAR手機遊戲開發-攻擊按鈕和UI血條
系列文
從0開始的UnityAR手機遊戲開發30

尚未有邦友留言

立即登入留言