iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0
Mobile Development

30天輕鬆學會unity自製遊戲系列 第 6

30天輕鬆學會unity自製遊戲-讓Player動起來

  • 分享至 

  • xImage
  •  

按照之前的進度製作,現在按下▶Player應該會魔性地扭動起來,但就沒有其他效果了,接下來就改造Player(切忌不要在▶狀態下改動unity所有屬性參數等…模擬遊戲一結束一切的改動基本上都會回朔)先幫Player添加一些配件鋼體跟碰撞器(Rigidbody2D 剛體讓此物件擁有一些物理特性&Collider2D 碰撞器Unity提供多種類型的碰撞器,當物件碰觸到碰撞器時可觸發任何的方法和函數) ,這遊戲用2D就可以(改用一般3D的目前應該也不會有大問題)
在Player屬性上按Add Component 可以添加一些程式.配件.功能等
https://ithelp.ithome.com.tw/upload/images/20210906/201405983Fx43lipoK.jpghttps://ithelp.ithome.com.tw/upload/images/20210906/20140598N8ZT4qSmRi.jpg
剛體會有重力,會自然的下墜,Rigidbody2D ->有一個Gravity Scale調成0
https://ithelp.ithome.com.tw/upload/images/20210906/20140598lkfgTmbHE4.jpg
Collider2D->Edit Collider改變碰撞器的大小
https://ithelp.ithome.com.tw/upload/images/20210906/20140598I4GzLpO9TA.jpg
接下來就寫一下Player左右移動的程式,一樣在Player屬性上按Add Component,上面的搜尋條輸入你要的程式名稱直接按New Script可以直接新增,會確認名稱是否有錯誤的輸入(不可空白.奇怪的符號等...)可以的名稱後按Create and Add就會出現你新增的程式(暫定名:PlayerControl)
https://ithelp.ithome.com.tw/upload/images/20210906/20140598mAVvBIdjRs.jpghttps://ithelp.ithome.com.tw/upload/images/20210906/20140598P1Vvw5Rrxn.jpg
對PlayerControl程式點兩下會開啟Visual Studio
以下就是左右移動的基礎程式

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerControl : MonoBehaviour
{
    //設定一個rig(名稱)是Rigidbody2D的屬性
    private Rigidbody2D rig;
	//unity屬性上會顯示一個speed(名稱)初始設定為值為5
    [SerializeField]float speed = 5f;
	//設定一個float(有小數的數值)來放移動數值的變數用
    float horizontalMove;
	//程式一開始就執行
    private void Start()
    {
        //rig的數值從unity的Rigidbody2D取得(前面添加的Rigidbody2D)
        rig = GetComponent<Rigidbody2D>();
    }
	//一直持續執行
    private void Update()
    {
		// horizontalMove的值從unity設定水平移動的數值
		//( Input.GetAxisRaw("Horizontal")為按下AD或左右傳入-1~1的數值出來)
        horizontalMove = Input.GetAxisRaw("Horizontal");
    }
	//每個物理幀執行一次
    private void FixedUpdate()
    {
        Move();
    }
	//設定一個叫Move的函數
    void Move()
    {
        //一開始設定的rig取velocity速度會等於一個新的new Vector2二維向量(X,Y) X軸改為剛剛輸入的horizontalMove乘以speed,Y軸維持原來的設定.
        rig.velocity =
           new Vector2(horizontalMove * speed, rig.velocity.y);
    }



}

上一篇
30天輕鬆學會unity自製遊戲-製作Player
下一篇
30天輕鬆學會unity自製遊戲-了解動畫系統
系列文
30天輕鬆學會unity自製遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
chinghunglin
iT邦新手 5 級 ‧ 2021-09-13 15:07:18

不知道發文的程式碼部分能用MarkDown的三個單引號標記為程式碼嗎?
留言是可以的
會保留縮排,可讀性比較高

'縮排測試
A = 1
    B = 2

另外
1.您應該是想說物理幀對吧,我之前也以為念ㄓㄣ(貞),查了一下才知道念ㄓㄥˋ(正)。
2.移動或許數值 → 些許數值。

再次感謝大大抽空寫文

謝謝

我要留言

立即登入留言