Unity3D 第三人称的游戏角色的单选和移动
来源:互联网 发布:raphael js 地图 编辑:程序博客网 时间:2024/05/10 02:34
个人比较喜欢制作策略类的第三人称游戏,可以召唤怪物,不知道大家喜不喜欢!如果喜欢的话就支持我一下吧!当然,如果你有一些好的功能和想法,可以一起讨论研究!欢迎大家来这里做客!
所以今天来分享一下最近做的项目中的,游戏角色的单选和移动! 我用的是Unity3D中的自动寻路<NavMeshAgent>组件来实现的,下面是游戏角色的组件,要看仔细哦!
首先在游戏对象的下面添加一个2D -> Sprite 的精灵图片(图片可以自行添加) 的子对象叫ColorBG 作为一个选中的标记
下面动画系统Animator的截图
好了,下面就是代码部分了<pre name="code" class="csharp">using UnityEngine;using System.Collections;using UnityEngine.UI;/// <summary>/// 功能: 游戏对象的单选和移动/// 创建者: VioletTD/// 修改时间: 2015年11月3日 22:50/// 感谢: Me加油!/// </summary>public class RabbitController : Singleton<RabbitController>{public bool didSelectPlayer;//是否被选中private GameObject colorBG;//精灵图片的游戏对象,下面使用GameObject.Find("ColorBG") 找到并实例化private Animator animator;//用于获取到游戏对象本身的动画系统private RaycastHit hit;//射线的命中点private Vector3 targetPos;//用于记录玩家的移动到的(寻路组件)的目标点void Awake () {animator = GetComponent<Animator>();//获取游戏对象的动画系统didSelectPlayer = false;//初始化是否被选中 为假 游戏对象没有被选中colorBG.SetActive (false);//初始化精灵图片的标示为 没有被选中targetPos = Vector3.zero;//初始化玩家移动的目标点为 Vector3(0,0,0)GetComponent<NavMeshAgent>().speed = 0.2f;//寻路组件的游戏对象的移动速度为0.2f}void Update () {PlayerMoveMethod ();//在Update中调用游戏对象移动的方法}#region PlayerMoveMethod()void PlayerMoveMethod()//游戏对象的移动放{if(Input.GetMouseButtonDown (1))//如果点击鼠标的右键{if(didSelectPlayer)//如果游戏对象被选中{Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);//创建从摄像机发射到鼠标的摄像if(Physics.Raycast (ray,out hit))//物理静态类的射线投射方法{if (hit.collider.CompareTag ("Ground")) //如果射线命中的为地面{targetPos = hit.point;//把射线命中的地面的点赋值给 游戏对象移动的目标点GetComponent<NavMeshAgent>().SetDestination (targetPos);//设置寻路组件的目的地为 游戏对象移动的目标点transform.LookAt (targetPos);//游戏对象看向该点animator.SetFloat ("Walk",0.2f);//设置Float类型的"Walk" 值为0.2f 大于0.1就会播放行走的动画}} }}if(Input.GetMouseButtonDown (0) && didSelectPlayer)//如果游戏对象在选中状态下 再次点击鼠标左键 设置游戏对象为未选中状态{didSelectPlayer = false;//设置为falsecolorBG.SetActive (false);//标记背景为不显示}if(!didSelectPlayer)//如果玩家在没有选中的状态 就会停止移动{GetComponent<NavMeshAgent>().SetDestination (transform.position);//设置寻路组件的目的地为本身animator.SetFloat ("Walk",0f);// Float类型的"Walk" 值为0 小于0.1就会停止播放行走动画}}#endregionvoid OnMouseUpAsButton()//如果鼠标点击并抬起{didSelectPlayer = true;//设置选中为TruecolorBG.SetActive (true);//脚下的圆圈为True 显示}}
谢谢大家的支持!!!!!!!
0 0
- Unity3D 第三人称的游戏角色的单选和移动
- Unity3D游戏开发第三人称角色控制的模式
- Unity3d--第三人称角色移动控制
- Unity3D模仿《魔兽世界》的第三人称角色控制器
- 第一人称和第三人称游戏中人物的移动和旋转
- Unity3D游戏制作 移动平台上的角色阴影制作
- Unity3D游戏制作 Day1-实现角色的移动
- 有趣的第一人称和第三人称游戏
- Unity3D游戏制作(一)——3D横版场景的角色移动控制
- Unity3D游戏制作(三)——移动平台上的角色阴影制作
- Unity3D游戏制作(一)——3D横版场景的角色移动控制
- Unity3D游戏制作(三)——移动平台上的角色阴影制作
- Unity3D游戏制作-3D横版场景的角色移动控制
- Unity3D游戏制作之3D横版场景的角色移动控制
- Unity3D游戏制作(三)——移动平台上的角色阴影制作
- Unity3D游戏制作(三)——移动平台上的角色阴影制作
- 第一人称游戏与第三人称游戏的区别
- Unity3D中的第三人称镜头的脚本控制
- JAVA构造函数内调用多态方法
- JFreeChart的使用
- 21分钟 MySQL 入门教程
- 计算机系统工作方式(一)
- eclipse 设置默认搜索格式
- Unity3D 第三人称的游戏角色的单选和移动
- Axis Web Service开发指南
- 《剑指offer》——包含min函数的栈
- Java代码性能优化总结(转)
- sql 语句
- iOS-FMDB的简单使用-增删改查
- 数据结构例程——应用图的广度优先遍历思路求解问题
- 【CUDA并行程序设计系列(2)】CUDA简介及CUDA初步编程
- Android小项目之欢迎滑动页面(页面布局&底部点点)