using System.Collections; using System.Collections.Generic; using UnityEngine; /** * 这个组件可以让一个对象进入到一个触发器内时,播放一段动画。 * 作者:weivain@qq.com www.weiva.com */ public class PlayAnimOnTrigger : MonoBehaviour { public Animation animToPlay;//申明触发后需要播放的动画 // Use this for initialization void Start () { } // Update is called once per frame void Update () { } //当有对象进入触发区域时执行 void OnTriggerEnter(Collider collider){ //如果进入触发器的对象的标签是“Player” if (collider.gameObject.tag == "Player") { animToPlay.Play ();//播放动画 } } }
Unity 脚本组件: Bullet
using System.Collections; using System.Collections.Generic; using UnityEngine; /** * 这个组件可以让一个对象可碰到一个具有 Enemy 标签的对象 * 时,删除这个对象和自己所在的对象。类似于子弹击中目标。 * 作者:weivain@qq.com www.weiva.com */ public class Bullet : MonoBehaviour { //当所在对象被创建时执行 void Start () { //3秒以后执行 KillSelf() Invoke ("KillSelf", 3); } //每帧执行 void Update () { } //当碰撞时执行 void OnCollisionEnter(Collision collision){ //如果碰到的物体标签tag 是 Enemy if(collision.gameObject.tag == "Enemy"){ Object.Destroy (collision.gameObject); //删除碰到的对象 Object.Destroy(this.gameObject); //删除自己 } } //删除自己 void KillSelf(){ Object.Destroy(this.gameObject); //删除自己 } }
Unity 在线学习资源
Unity 脚本组件:Shooter
下载文件:Shooter
using System.Collections; using System.Collections.Generic; using UnityEngine; /** * 这个组件可以让一个对象可以射击出另外一个对象。 * 需要指定发射的物体 Bullte 和发射点 ShootPoint。 * 作者:weivain@qq.com www.weiva.com */ public class Shooter : MonoBehaviour { public GameObject bullet; //申明子弹原型 public Transform shootPoint;//子弹被克隆时的初始位置 //对象被创建时执行 void Start () { } //每一帧被执行 void Update () { } //每一物理帧被执行 void FixedUpdate(){ //如果“开火1”按钮被按下时 if (Input.GetButtonDown ("Fire1")) { //克隆一个对象,并且用 newBullet 来代表它。 GameObject newBullet = GameObject.Instantiate (bullet); //把克隆出来的对象放到射击点的位置 newBullet.transform.position = shootPoint.position; //把克隆出来的对象旋转角度与射击点一致 newBullet.transform.rotation = shootPoint.rotation; //设置克隆出来的对象速度为:子弹的前方 x 30 个单位(既每秒30米) newBullet.GetComponent<Rigidbody> ().velocity = newBullet.transform.forward * 30; } } }