Unity 操纵方块碰撞其他物体 使其他物体变色
2017-01-17 10:17
921 查看
操纵的方块上面的脚本:
using UnityEngine;
using System.Collections;
public class playerScript : MonoBehaviour {
delegate void CHANGECOLOR(Color color);
event CHANGECOLOR changeMyColor;
event CHANGECOLOR changeMyColor1;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
float a = Input.GetAxis ("Horizontal");
float b = Input.GetAxis ("Vertical");
transform.position +=transform.forward* b * 10 * Time.deltaTime;
if(b<0){
b = -b;
}
transform.Rotate (Vector3.up * a *50 *Time.deltaTime);
if (Input.GetKeyDown(KeyCode.Space)) {
//判断事件不为空
if (changeMyColor != null ) {
changeMyColor (Color.yellow);
}
if (changeMyColor1 != null) {
changeMyColor1 (Color.red);
}
}
}
void OnCollisionEnter(Collision other){
//事件绑定
if (other.collider.tag == "cube") {
changeMyColor += other.collider.GetComponent<ChangecolorScript> ().ChangeColor;
}
if (other.collider.tag == "Player") {
changeMyColor1 += other.collider.GetComponent<Changecolor1Script> ().ChangeColor;
}
}
}
被碰撞的其他物体的代码
物体一
using UnityEngine;
using System.Collections;
public class ChangecolorScript : MonoBehaviour {
//player绑定的方法
public void ChangeColor(Color color){
GetComponent<MeshRenderer> ().material.color = color;
}
}
物体二
using UnityEngine;
using System.Collections;
public class Changecolor1Script : MonoBehaviour {
public void ChangeColor(Color color){
GetComponent<MeshRenderer> ().material.color = color;
}
}
using UnityEngine;
using System.Collections;
public class playerScript : MonoBehaviour {
delegate void CHANGECOLOR(Color color);
event CHANGECOLOR changeMyColor;
event CHANGECOLOR changeMyColor1;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
float a = Input.GetAxis ("Horizontal");
float b = Input.GetAxis ("Vertical");
transform.position +=transform.forward* b * 10 * Time.deltaTime;
if(b<0){
b = -b;
}
transform.Rotate (Vector3.up * a *50 *Time.deltaTime);
if (Input.GetKeyDown(KeyCode.Space)) {
//判断事件不为空
if (changeMyColor != null ) {
changeMyColor (Color.yellow);
}
if (changeMyColor1 != null) {
changeMyColor1 (Color.red);
}
}
}
void OnCollisionEnter(Collision other){
//事件绑定
if (other.collider.tag == "cube") {
changeMyColor += other.collider.GetComponent<ChangecolorScript> ().ChangeColor;
}
if (other.collider.tag == "Player") {
changeMyColor1 += other.collider.GetComponent<Changecolor1Script> ().ChangeColor;
}
}
}
被碰撞的其他物体的代码
物体一
using UnityEngine;
using System.Collections;
public class ChangecolorScript : MonoBehaviour {
//player绑定的方法
public void ChangeColor(Color color){
GetComponent<MeshRenderer> ().material.color = color;
}
}
物体二
using UnityEngine;
using System.Collections;
public class Changecolor1Script : MonoBehaviour {
public void ChangeColor(Color color){
GetComponent<MeshRenderer> ().material.color = color;
}
}
相关文章推荐
- Unity 3D 物体碰撞后实现连接
- unity 物体间的碰撞检测
- unity实现鼠标经过时ui及物体的变色
- 【伪原创?】超级啰嗦的unity入门笔记之小物体的旋转(物体的自转和绕其他体的旋转)
- unity 用Box Collider为物体添加碰撞范围
- [Unity插件][Shader资源]Outline2D3D物体描边插件2D图片模糊灰度变色水滴特效插件
- Unity为物体添加物理碰撞效果
- Unity两个物体发生碰撞的条件(即调用碰撞函数的条件)
- unity 给大家分享一个可以直接将unity中的物体导出成fbx存在项目中的方法(实测pc可用,移动端不可以~~~其他待测~~)
- Unity 碰撞检测,触发检测,方向键控制物体移动
- Unity在一个场景中使用其他场景烘焙的物体
- unity体感游戏--接钻石游戏(三)游戏物体碰撞得分
- Unity5.0 烘焙物体导入其他场景
- 【Unity&NGUI&UGUI】2D精灵物体变色彩透明以及图片高亮变色的方法
- Unity两个物体发生碰撞的条件
- Unity学习笔记 之 发射小球碰撞物体的代码记录
- Unity 模拟爆炸后的物体碰撞
- unity解决快速运动物体碰撞检测穿透问题
- Unity 访问其他游戏物体的几种方法
- Unity5箱子中中物体碰撞效果