您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 程序开发 > 代码编程 >
    场景NPC触发和间隔时间显示信息在人物上方脚本
    时间:2015-02-27 10:21 来源:互联网 作者:网络 浏览:收藏 挑错 推荐 打印

    场景NPC触发和间隔时间显示信息在人物上方脚本


    using UnityEngine;

    using System.Collections;


    public class NPC : MonoBehaviour {

    public GameObject ying_1;

    private float shi_1 = 0;

    //private float fireRate = 10F;


    void Update() 

    {  

    //隐藏物体

       ying_1.SetActiveRecursively(false);

     // 向前以每秒2米的移动

    transform.Translate(Vector3.forward * Time.deltaTime*2);

       gameObject.animation.Play("walk");

    //时间变化 

    //并且 每隔10做一次事件,在15秒的时候时间从0开始运行!

      shi_1+=Time.deltaTime;

     //10秒的时候做一次事件

    if(shi_1>=10.0f)

      {

    //显示物体

    ying_1.SetActiveRecursively(true);

     

       }

    //15秒的做次事件 

     if(shi_1>=15.0f)

      {

      //时间归0

    shi_1-=15.0f;

    ying_1.SetActiveRecursively(false);


        }


    }

     //碰撞触发

    void OnTriggerEnter(Collider other) {

      //4个方向随即旋转角度120°

          Quaternion rotate = Quaternion.Euler(0,Random.Range(1,5) *120,0);

      transform.rotation = Quaternion.Slerp(transform.rotation,rotate, Time.deltaTime*100);

      //播放动画

      gameObject.animation.Play("walk");





    }


    }



    ---------------------------------------------------------------------------


    using UnityEngine;

    using System.Collections;


    public class NPC_1: MonoBehaviour {

    public GameObject ying_1;

    private float shi_1 = 0;

    RaycastHit hit;


    void Update() 

    {  

    transform.Translate(Vector3.forward * Time.deltaTime*2);

       gameObject.animation.Play("walk");

     if (Physics.Raycast(transform.position, Vector3.forward, out hit, 5F))

    {

    if(hit.collider.gameObject.tag=="cube1")

    {

          Quaternion rotate = Quaternion.Euler(0,Random.Range(1,5) *120,0);

      transform.rotation = Quaternion.Slerp(transform.rotation,rotate, Time.deltaTime*100);

      gameObject.animation.Play("walk");

    }

    }

     shi_1+=Time.deltaTime;

    ying_1.SetActiveRecursively(false);

    if(shi_1>=10.0f)

     {

    ying_1.SetActiveRecursively(true);


     }

      if(shi_1>=15.0f)

       {

    shi_1-=15.0f;

    ying_1.SetActiveRecursively(false);


         }

    }

    void Start()

    {




    }


    (责任编辑:雷霆风)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。