給Zombunny加一個tag,腳本用
p3玩家可以圍着Zombunny轉,僅僅是演示
p4鼠標控制player轉向,wasd控制移動
添加quad改名爲floor,鼠標每次點擊會落到floor上(腳本實現)
添加layer的floor
並移除floor的component
寫floor的腳本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovemment : MonoBehaviour
{
public float speed = 6f;
Rigidbody playerRigidbody;
int floorMask;
//Transform enemyTransform;
Animator animator;
private void Awake() // 加載腳本實例調用Awake
{
playerRigidbody = GetComponent<Rigidbody>(); // MonoBehaviour中定義的方法GetComponent找到有Rigidbody的遊戲對象
floorMask = LayerMask.GetMask("Floor");
//var enemy = GameObject.FindGameObjectWithTag("Zombunny");
//enemyTransform = enemy.transform; // 通過tag獲取enemy的Transform
animator = GetComponent<Animator>();
}
private void FixedUpdate() // 固定方法名,時刻調用MonoBehaviour更新遊戲畫面
{
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical"); // 獲取方向軸的輸入
Move(h, v);
Turning();
DoAnimation(h, v);
}
private void DoAnimation(float h, float v)
{
bool isWalking = h != 0 || v != 0;
animator.SetBool("IsWalking", isWalking);
}
private void Move(float h, float v)
{
Vector3 movement = new Vector3(); // 兩個方向鍵同時按斜着走要算斜率
movement.Set(h, 0f, v);
movement = movement.normalized * Time.deltaTime * speed; // 比喻:1秒顯示60FPS畫面
playerRigidbody.MovePosition(transform.position + movement); // player的座標加上移動
}
private void Turning()
{
Ray camRay = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(camRay, out RaycastHit floorHit, 100, floorMask))
{
Vector3 forward = floorHit.point - transform.position;
forward.y = 0f;
Quaternion lookQuaternion = Quaternion.LookRotation(forward);
playerRigidbody.MoveRotation(lookQuaternion);
}
//Vector3 forward = enemyTransform.position - enemyTransform.position; // player和enemy的距離
//Quaternion lookQuaternion = Quaternion.LookRotation(forward); // unity計算player對enemy的forward
//playerRigidbody.MoveRotation(lookQuaternion);
}
}
p5添加player移動動畫
添加AnimationController拖拽到player上
在AC裏拖拽完成動畫的轉換
寫DoAnimation方法捕捉動畫
效果
p6攝像機跟隨角色
創建camera腳本拖拽給main camera
暫時可以穿模
p7怪物跟隨玩家
添加障礙,給player add component - physics - capsule collider,覆蓋player
給Zombunny也添加一個capsule collider
不穿模了
打開window-ai-navigation,敵人可以自動尋路
給zombunny add component-nav mesh agent
不會打圈的設定
換成上帝視角
好了