Unity3D 冲锋效果.角色拖尾效果
《魔兽世界》,本人最喜欢的网络游戏,如果你玩过战士,你一定对战士的冲锋非常熟悉,现在接触 Unity3D,因为最近用到了刀光、拖尾特效,所以就想做一个类似战士的冲锋效果,在本场景用到的拖尾效果可以查看我的另一篇文章,里面有详细的介绍,刀光效果来自 Unity3D Assets 商店,只是把原作者的例子代码整理了一下,变得非常简单实用的类。
最终效果如下:
先来搭建我们的场景,如图:
然后给角色的模型添加一个空对象,并且加上 MeshRender,并且设置好材质为 WeaponTrail,另外给这个空对象添加 WeaponTrail.cs 对象,设置好相关属性,如图:
下面的代码是修改另一篇文章的 TrailsBladeMaster.cs 类,新的代码如下:
复制代码
代码如下:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[AddComponentMenu(PocketRPG/Blade Master)]
public class TrailsBladeMaster : MonoBehaviour
{
/// summary
/// 拖尾效果
/// /summary
public WeaponTrail weaponSwipe;
public AnimationClip idleClip;
public AnimationClip runClip;
/// summary
/// 移动速度
/// /summary
public float speed = 20.0f;
public Camera mainCamera;
private Animation animation;
protected TrailsAnimationController animationController;
protected CharacterController characterController;
/// summary
/// 运行状态
/// /summary
private bool isMoving = false;
/// summary
/// 目标位置
/// /summary
private Vector3 targetPosition;
/// summary
/// 移动向量
/// /summary
private Vector3 moveDirection;
protected void Awake ()
{
this.animation = this.GetComponentAnimation ();
this.animationController = this.GetComponentTrailsAnimationController ();
this.characterController = this.GetComponentCharacterController ();
this.animation.CrossFade (this.idleClip.name);
}
protected void Start ()
{
if (this.weaponSwipe != null) this.animationController.AddTrail (this.weaponSwipe);
}
protected void Update ()
{
if (!this.isMoving Input.GetMouseButtonDown(0))
{
this.targetPosition = this.GetWorldPosition();
if(this.targetPosition != Vector3.zero)
{
this.isMoving = true;
this.moveDirection = (this.targetPosition - this.transform.position).normalized * this.speed;
this.transform.rotation = Quaternion.LookRotation(new Vector3(this.moveDirection.x, 0f, this.moveDirection.z));
this.animation.CrossFade(this.runClip.name);
if(this.weaponSwipe != null) this.weaponSwipe.StartTrail(1f, 0f);
}
}
if (this.isMoving)
{
if(!this.IsArrivePosition())
{
this.characterController.Move(this.moveDirection * Time.deltaTime);
}
else
{
this.animation.CrossFade(this.idleClip.name);
if(this.weaponSwipe != null) this.weaponSwipe.ClearTrail();
this.transform.position = this.targetPosition;
this.isMoving = false;
}
}
}
/// summary
/// 验证是否到达目标地点
/// /summary
/// returnsctrue/c if this instance is arrive position; otherwise, cfalse/c./returns
private bool IsArrivePosition()
{
Vector3 currentDirection = (this.targetPosition - this.transform.position).normalized;
if (this.CalculateNormalized (currentDirection) == this.CalculateNormalized (this.moveDirection) * -1)
{
return true;
}
return false;
}
/// summary
/// 规范化比较向量
/// /summary
/// returnsThe normalized./returns
/// param name=directionDirection./param
private Vector3 CalculateNormalized(Vector3 direction)
{
Vector3 value = Vector3.zero;
value.x = direction.x 0 ? 1 : -1;
value.z = direction.z 0 ? 1 : -1;
return value;
}
/// summary
/// 获取世界位置
/// /summary
/// returnsThe world position./returns
private Vector3 GetWorldPosition()
{
Ray ray = this.mainCamera.ScreenPointToRay(Input.mousePosition);
RaycastHit raycastHit;
if(Physics.Raycast(ray, out raycastHit))
{
if(raycastHit.collider.gameObject.name == Terrain)
{
return raycastHit.point;
}
}
return Vector3.zero;
}
}
最后给角色对象挂载 TrailsAnimationController.cs 组件以及 TrailsBladeMaster.cs 组件,同时还需要添加一个角色控制器(CharacterController),因为我们用这个来驱动角色移动,如图:
最后运行可以查看效果,点击地形,角色向目标点移动,并带有拖尾效果。
百度网盘下载地下: 密码: t41j
- 1清新职场环境,招聘优秀保洁服务人员
- 2如何选择适合您的玉泉路搬家公司及联系方式
- 3奉贤商城专业保洁服务标准详解
- 4广西玉林邮政社会招聘面试?
- 5大连搬家服务全解析:选择适合您的搬家公司
- 6丰台区搬家服务推荐及联系方式
- 7快速找到厂洼搬家公司电话,轻松搬家无忧
- 8揭秘万寿路搬家公司电话,快速搬家从此不再烦恼
- 9丰台区搬家攻略:选择最适合你的搬家公司
- 10广州长途搬家服务:如何选择合适的搬家公司及其联系方式
- 11木樨地搬家服务全面指南:如何快速找到合适的搬家公司电话
- 12在宣武门找搬家公司?拨打这些电话轻松搬家!
- 13西二旗搬家服务全攻略:如何找到最靠谱的搬家公司电话
- 14临河搬家公司:专业服务助您轻松搬家
- 15选择异地搬家的物流公司,这几点必须考虑!
- 16可靠的十八里店搬家公司:联系电话与服务指南
- 17创造搬家新体验:大众搬家公司官网全揭秘
- 18武汉优质店铺保洁服务,让您的店面焕然一新
- 19青浦物业小区保洁服务的魅力与选择
- 20如何选择合适的保洁服务?美女保洁员的优势与魅力
- 21提升家政服务水平:普陀家政保洁服务培训解析
- 22提升均安诊所环境的保洁服务方案:健康与舒适双重保障
- 23银行保洁服务方案的标准与最佳实践
- 24提升清洁技能,在西藏寻找最佳保洁服务培训学校
- 25让生活更轻松:大型蓝领公寓保洁服务的优势与选择
- 26义乌商贸区保洁服务:为您的商务环境保驾护航
- 27全面解析绿色保洁服务的多种方法
- 28打造洁净空间:武昌大楼日常保洁服务全解析
- 29无锡到上海搬家公司电话推荐:靠谱服务一键直达
- 30辽宁2023年省考公告时间?