学习Unity3D之攻击恢复。
来源:互联网 发布:mac滴管粉底液怎么样 编辑:程序博客网 时间:2024/05/17 03:43
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
前几天我写了自动寻径,今天结合自动寻径和模型上的静止(idle)、走(walk)、攻击(attack),做到让模型走到另一个模型身边攻击他,另一个模型消失,然后模型停止攻击动作恢复静止。
附在模型上的代码:
public float timer = 1f;
public static int lifetime = 1;
private NavMeshAgent agent;
public Transform hero;
bool flag = false;
void Start()
{
agent = GetComponent<NavMeshAgent>();
}
void Update () {
RaycastHit hit;
if (Input.GetMouseButtonDown(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray,out hit)){
agent.SetDestination(hit.point);
}
}
if (flag)
{
timer -= Time.deltaTime;
if (timer <= 0)
{
flag = false;
timer = 1f;
}
AnimationToAttack();
}
else
{
if (agent.remainingDistance == 0)
{
AnimationToIdle();
}
else
{
AnimationToWalk();
}
}
}
public void AnimationToIdle() {
hero.transform.animation.Play("idle");
}
public void AnimationToWalk() {
hero.transform.animation.Play("walk");
}
public void AnimationToAttack() {
hero.transform.animation.Play("idle to working");
}
void OnTriggerEnter(Collider a)
{
if (a.CompareTag("life"))
{
flag = true;
}
}
附在武器上的代码:
public float enemylife = 2;
void OnTriggerEnter(Collider a){
if (a.CompareTag("life")) {
enemylife--;
if (enemylife == 0) {
Destroy(a.gameObject);
enemylife = 2;
move.lifetime++;
}
}
}
- 学习Unity3D之攻击恢复。
- Unity3D学习之刚体
- unity3d学习之光源
- Unity3d学习之音频
- Unity3D学习之光源
- 学习Unity3D之迭代器。
- Unity3D学习之transform。
- 学习Unity3D之登陆。
- 学习Unity3D之克隆。
- 学习Unity3D之背景图片。
- Unity3D之FingerGestures学习
- Unity3D学习之准备工作
- Unity3D之C#学习
- Unity3D学习之Camera
- Unity3D学习之路
- Unity3D学习之路
- Unity3D学习之路
- 攻击方式学习之(1)
- cocos2d-x网络编程
- 效率优化与安全
- 网络通信实现和SMTP协议程序简单分装
- Ceph OSD日志随机整理
- 过滤专题
- 学习Unity3D之攻击恢复。
- C语言指针
- Wamp5出现#1045 - Access denied for user 'root'@'localhost' (using password: NO)
- 句柄
- jqGrid行编辑配置,方法,事件
- fft
- VB6高精度计时类模块
- 适配器模式
- PHP性能优化