亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 編程設計 > 正文

Unity3D 沖鋒效果、角色拖尾效果

2020-07-14 13:22:46
字體:
來源:轉載
供稿:網友

《魔獸世界》,本人最喜歡的網絡游戲,如果你玩過戰士,你一定對戰士的沖鋒非常熟悉,現在接觸 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.GetComponent<Animation> ();
this.animationController = this.GetComponent<TrailsAnimationController> ();
this.characterController = this.GetComponent<CharacterController> ();
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>
/// <returns><c>true</c> if this instance is arrive position; otherwise, <c>false</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>
/// <returns>The normalized.</returns>
/// <param name="direction">Direction.</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>
/// <returns>The 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),因為我們用這個來驅動角色移動,如圖:

最后運行可以查看效果,點擊地形,角色向目標點移動,并帶有拖尾效果。

百度網盤下載地下:http://pan.baidu.com/s/1hqeiREO 密碼: t41j

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美wwwwww| 热久久视久久精品18亚洲精品| 日韩欧美在线一区| 久久久久久久激情视频| 亚洲综合小说区| 欧美高跟鞋交xxxxxhd| 亚洲影院色在线观看免费| 欧美激情中文字幕在线| 日韩高清免费在线| 九九热精品视频在线播放| 亚洲一区二区三区xxx视频| 姬川优奈aav一区二区| 91高清视频免费观看| 亚洲欧美国产一本综合首页| 国产亚洲精品久久久久动| 成人亲热视频网站| 久久久精品中文字幕| 91久久精品国产| 日韩精品中文字幕有码专区| 亚洲视频在线观看网站| 久久精品91久久久久久再现| 国产日韩欧美夫妻视频在线观看| 91综合免费在线| 亚洲福利在线视频| 欧美成人激情视频免费观看| 日韩av综合网| 亚洲第一二三四五区| 久久国产精品久久久久久久久久| 精品久久香蕉国产线看观看亚洲| 日韩欧美综合在线视频| 国产一区二区三区在线播放免费观看| 欧美日韩爱爱视频| 亚洲精品久久久久久久久久久久| 国产精品揄拍一区二区| 欧美日韩免费在线| 91在线视频成人| 欧美一区二区三区免费视| 国产精品777| 色av中文字幕一区| 日韩精品中文字幕在线观看| 国产精品入口福利| 欧美激情啊啊啊| 中文一区二区视频| 欧美精品一区在线播放| 超碰精品一区二区三区乱码| 久久久免费在线观看| 北条麻妃在线一区二区| 亚洲国产精品va| 久久成人精品电影| 午夜免费在线观看精品视频| 国产不卡在线观看| 欧美国产日本高清在线| 国产精品狼人色视频一区| 搡老女人一区二区三区视频tv| 久久精品99久久香蕉国产色戒| 国产91久久婷婷一区二区| 亚州精品天堂中文字幕| 97在线免费观看| 亚洲伊人一本大道中文字幕| 国产精品青草久久久久福利99| 成人激情综合网| 亚洲香蕉av在线一区二区三区| 久久综合国产精品台湾中文娱乐网| 欧美猛男性生活免费| 久久综合五月天| 亚洲欧美一区二区三区四区| 国产激情久久久| 国产精品久久一| 欧美高清电影在线看| 欧美疯狂性受xxxxx另类| 亚洲桃花岛网站| 亚洲无限av看| 日本欧美一级片| 国产亚洲精品美女久久久久| 久久久久久12| 国产精品久久电影观看| 日韩免费在线视频| 国产精品91久久久| 成人免费福利视频| 亚洲精品第一页| 91亚洲精品视频| 高清亚洲成在人网站天堂| 亚洲精品456在线播放狼人| 国产精品一香蕉国产线看观看| 亚洲欧美日韩中文在线| 日韩电影中文字幕在线观看| 亚洲欧美综合另类中字| 在线性视频日韩欧美| 国产视频精品在线| 色一情一乱一区二区| 91成人在线播放| 91精品国产色综合久久不卡98| 国产视频精品一区二区三区| 欧美孕妇与黑人孕交| 另类专区欧美制服同性| 欧美综合一区第一页| 亚洲天堂影视av| 日韩成人xxxx| 中文字幕欧美国内| 亚洲精品一区中文字幕乱码| 久久久成人的性感天堂| 欧美一二三视频| 亚洲精品电影网| 国产精品jizz在线观看麻豆| 欧美激情精品久久久久| 亚洲影院污污.| 国产精品网站大全| 奇米四色中文综合久久| 精品一区精品二区| 亚洲乱码国产乱码精品精| 国产欧美一区二区白浆黑人| 久久电影一区二区| 亚洲a在线观看| 国产中文字幕亚洲| 91社区国产高清| 欧美多人爱爱视频网站| 免费97视频在线精品国自产拍| 欧洲s码亚洲m码精品一区| 久久久精品视频在线观看| 亚洲精品日韩久久久| 久久久精品国产| 久久人人爽人人爽人人片av高请| 久久久视频在线| 国产精品久久国产精品99gif| 亚洲影影院av| 日韩在线中文字幕| 日韩精品视频观看| 欧美中文在线字幕| 亚洲区一区二区| 国产成人啪精品视频免费网| www.色综合| 亚洲美女在线观看| 高潮白浆女日韩av免费看| 精品久久久久久亚洲国产300| 欧洲日本亚洲国产区| 91成人性视频| 91免费在线视频网站| 亚洲国产精品一区二区三区| 在线日韩日本国产亚洲| 欧美成人中文字幕在线| 国产欧美精品日韩精品| 国产极品精品在线观看| 中文字幕亚洲欧美| 91香蕉嫩草神马影院在线观看| 国产精品丝袜视频| 欧美成人精品在线播放| 欧美精品18videos性欧美| 中文字幕免费精品一区高清| 国色天香2019中文字幕在线观看| 国产深夜精品福利| 欧美一区二区三区免费观看| 久久福利视频导航| 亚洲a中文字幕| 午夜精品久久久99热福利| 国产精品色悠悠| 久久精品久久久久电影| 91av在线免费观看视频| 91精品久久久久久久久久入口| 蜜月aⅴ免费一区二区三区| 日韩中文字幕视频在线| 最新国产精品拍自在线播放| 欧美国产日韩免费| 久久久www成人免费精品| 日韩精品丝袜在线|