zoukankan      html  css  js  c++  java
  • unity 的动态创建对象和对象碰撞消息

    • 1.多个GameObject 的随机抽取

    public GameObject[] hazards;

    void Fun()

    {

      // 从多个gamObj中抽取一个

    GameObject o = hazards [Random.Range (0, hazards.Length)];
    Vector3 p = new Vector3 (x, y, z);
    Quaternion q = Quaternion.identity;
    Instantiate(o, p, q); // 如果你要获取你创建的Obj则将这行改为下面这行

    // 创建随机的Obj并赋值

    GameObject newForest = GameObject.Instantiate(o, p, q) as GameObject;               

    newForest.transform.parent = this.transform; // 设置产生的新对象的父类为当前场景

     

    }

    • 2.碰撞机(collider)的消息发送

    OnTriggerEnter  当碰撞器other进入触发器时OnTriggerEnter被调用。

    OnTriggerExit 当碰撞器other停止触动触发器时,OnTriggerExit被调用。

    OnTriggerStay 每个碰撞器other触动触发器,几乎在所有的帧OnTriggerStay被调用。

    OnCollisionEnter 当collider/rigidbody开始触动另一个rigidbody/collider时OnCollisionEnter被调用。

    OnCollisionExit 当 collider/rigidbody停止触动另一个 rigidbody/collider时,OnCollisionExit被调用。

    OnCollisionStay 每个collider/rigidbody触动rigidbody/collider,将在每帧调用OnCollisionStay。

    详见Collider帮助文档:http://game.ceeger.com/Script/Collider/Collider.html

    用例:  

    void OnTriggerExit(Collider other)

    {

    if (other.gameObject.name == "foods")

    {GameObject.Destroy(other.gameObject);}

    }

    //不需手动调用, 只要应用在某Obj上,产生碰撞停止消息即会自动调用。

    条件:应用事件的物体必须有collider并勾选is Trigger、rigidbody、并且是本身是运动的(这点是为什么???谁能告诉我,纠结了很久,一直想不明白)

  • 相关阅读:
    mysql(一)
    spring
    数据库连接池
    spring jdbctemplate
    HDU-4219-Randomization?
    离线赛总结
    HDU-4507-吉哥系列故事-恨7不成妻
    HDU-1204-糖果大战
    [BZOJ1150][CTSC2007]数据备份
    二分图学习笔记
  • 原文地址:https://www.cnblogs.com/Kprogram/p/4019891.html
Copyright © 2011-2022 走看看