日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三、Unity2D游戏制作——角色制作

發(fā)布時間:2023/12/15 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三、Unity2D游戏制作——角色制作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.導入角色圖片并切片

新建文件夾player-將角色圖片拖動至該文件夾內(nèi)-選中圖片文件后點擊檢查器內(nèi)sprite editor按鈕打開編輯器-點擊切片按鈕-切片方式選擇自動-點擊應用。

2.創(chuàng)建行走動畫

分別選中所有面向前方后方等四個方向切片拖動至層級對話框內(nèi),保存文件至player子文件夾walk中,命名為Walk_U等四個文件,完成后刪除層級框內(nèi)剛新建的四個動畫對象文件及walk文件夾內(nèi)四個動畫器文件。
這里我的窗口布局改為了默認布局

3.創(chuàng)建靜止動畫

打開walk文件夾-復制并粘貼Walk_D.admin等四個文件-于unity項目對話框內(nèi)一次將其重命名為Idle_U等。

雙擊Walk_D打開動畫編輯器-選中第一張動畫復制-點擊Idle_D切換到Idle_D動畫粘貼,將另外三個也做同樣處理。

4.建立角色靜止動畫規(guī)則

選中層級內(nèi)Player對象-拖動項目對話框內(nèi)Walk_D文件至檢查器對話框內(nèi)添加組件處以創(chuàng)建player動畫器。

雙擊player打開動畫器-刪除動畫器內(nèi)已存在的Walk_D-右擊動畫器窗口空白處選擇創(chuàng)建狀態(tài)-新混合樹并重命名為Idle,添加兩個float類型參數(shù)Input_x、Input_y,一個bool類型參數(shù)iswalking。

雙擊打開Idle,檢查器內(nèi)混合類型修改為2D Freeform Cartesian,添加四個運動域-將參數(shù)改為Input_x、Input_y-將空運動換為Idle_D、Idle_U等,參數(shù)如圖。

對此我的理解為:
假設player所在位置設為原點,當player面向Pos點方向時調(diào)用前面的motion,例如player往上時,也就是往Y軸正方向,那么pos即為(0,+)可以為(0,1)(0,0.1)(0,2)等,需要調(diào)用的動畫為Idle_U。

5.建立角色移動動畫規(guī)則

復制粘貼一份Idle更名為walking,將motion改為對應的walking動畫。

6.建立過度條件

右鍵動畫器內(nèi)Idle創(chuàng)建過渡-取消退出時間-添加條件iswalking-值設為true,同理建立iswalking到idle過渡,設置iswalking為false。

7.創(chuàng)建移動控制腳本

選中層級內(nèi)player對象,點擊添加組件,選擇New script

打開新建的腳本文件,編輯代碼。

using System.Collections; using System.Collections.Generic; using UnityEngine;public class BehaviourScript : MonoBehaviour {Rigidbody2D rbody; //定義變量Animator anim;// Start is called before the first frame updatevoid Start(){rbody = GetComponent<Rigidbody2D>(); //初始化anim = GetComponent<Animator>();}// Update is called once per framevoid Update(){Vector2 vector = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); //定義向量,獲取水平豎直方向值 使用GetAxisRaw可以兼容方向鍵游戲手柄等。if (vector!=Vector2.zero) //判斷是否在移動{anim.SetBool("iswalking", true); anim.SetFloat("Input_x", vector.x);anim.SetFloat("Input_y", vector.y);}elseanim.SetBool("iswalking", false);rbody.MovePosition(rbody.position + vector * Time.deltaTime * 100); //移動player} }

注意:
當腳本文件報無法加載關聯(lián)的腳本時有兩種情況,判斷方法新建腳本文件不修改文件名若仍然報錯則為第二種:1.類名與文件名不一致,解決方案修改類名或文件名。2.環(huán)境問題,解決方案刪除項目窗口內(nèi)SuperTiled2Unity文件夾并重新安裝,若仍未解決則重裝unity。

8.綁定攝像機

新建c#腳本文件,綁定到Main Camera,代碼如下:

using System.Collections; using System.Collections.Generic; using UnityEngine;public class CameraAuto : MonoBehaviour {public Transform targer; //定義變量 public float m_moveSpeed = 0.03f;Camera mycamera;// Start is called before the first frame updatevoid Start(){mycamera = GetComponent<Camera>(); //初始化}// Update is called once per framevoid Update(){//mycamera.orthographicSize = (Screen.height / 0.6f) / 4f; //設置攝像機范圍if(targer){transform.position = Vector3.Lerp(transform.position, targer.position, m_moveSpeed); //移動攝像機}} }

保存后選中Main Camera,將Player拖動到Targer即可。

注意:
腳本文件中的public變量會顯示在unity腳本組件下拉菜單中,如上圖中的targer、movespeed。

總結

以上是生活随笔為你收集整理的三、Unity2D游戏制作——角色制作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。