RPG 小游戏 制作心得(第一天)
RPG 小游戏 制作心得(第一天) 今天呢 我跟大家一起分享 一下 RPG 的制作心得 因为我也是新手 所以呢发出来大家一起指点 和 批评那么我在蛮牛教育上看了好多 类似的教程所以就自学了几天 今天我就开始献丑啦首先我们需要个场景 需要素材的话可以加这个qq群 390835120来下载很漂亮的场景那么我们开始吧 第一天呢我们就来把 主角的移动控制来实现下吧 首先将模型的人物模型Rig的动画模式改成Generic我们 用这个来新版动画状态机来控制人物的动画
创建一个动画控制器将所用的动画都拖进去因为今天只是讲移动控制所以我们将2个 idlerun 跑 和 傻站着是互相切换 所以我们互相连接我们还需要一个bool变量控制起名就叫 movemove=true 的是 切到跑move=false 是傻站着 然后将改弄好的控制器 拖到角色上的Animator这一步弄好了我们先放一边因为我们需要点击地面哪里角色就移动到哪里 所以我们要用 到 nav mesh 用这个需要烘焙地形 选着 地面 还要 地面上的障碍物 我们来烘焙
烘焙好后给角色 加一个NavMeshAgent 组件弄好后 终于到了 写脚本的时刻啦思路是这样的 我们建立一根射线点击时候 射线出来射线 于地面碰撞的时候的碰撞点 就是我们角色要去的位置
using UnityEngine;
using System.Collections;
public class PlayMove : MonoBehaviour {
private Animator anim;
private NavMeshAgent nav;
private LayerMask mask = -1;
RaycastHit hit;
void Start () {
anim = gameObject.GetComponent<Animator>();
nav=gameObject.GetComponent<NavMeshAgent>();
anim.SetBool("move", false);
mask = LayerMask.GetMask("ground");
}
void Update () {
if (Input.GetMouseButtonDown(0))
{
move();
}
distance();
}
void move()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit,100,mask))
{
nav.SetDestination(hit.point);
anim.SetBool("move", true);
}
}
void distance()
{
if ((transform.position - hit.point).sqrMagnitude<0.1f)
{
anim.SetBool("move", false);
}
}
}
好啦今天就到这下次更新 角色攻击的实现
难得啊,脚本编程很少人写,我倒觉得,Unity只是一个软件而已,但重中之重确实Unity API 楼主是超人 好帖就是要顶 顶顶多好 很好哦 LZ真是人才 很不错 楼主是超人 好帖就是要顶