您的位置:首页 > 移动开发 > Unity3D

Unity3D:c#脚本控制物件移动,材…

2017-03-08 10:59 393 查看
通过c#脚本来控制物件移动,并且改变物件颜色,被控体在碰撞物体后被碰撞的物体将会变蓝,如果物体已经是蓝色则变绿。

脚本1:Move.cs   将脚本赋值给摄像机达到控制目的

using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour
{
    GameObject cube;
    GameObject[] Cube;
    // Use this for
initialization
    void Start()
    {
     
     
  cube =
GameObject.Find("cn");//这里依照被控体的名称来修改
     
  cube.GetComponent().material.color =
Color.red;

    }

    // Update is called once
per frame
    void Update()
    {
     
  // 在每一帧中都实时检测
     
  if (Input.GetKey(KeyCode.W))
     
  {
     
     
cube.transform.Translate(-5 * Time.deltaTime, 0, 0,
Space.Self);
     
  }

     
  if (Input.GetKey(KeyCode.S))
     
  {
     
     
cube.transform.Translate(5 * Time.deltaTime, 0, 0,
Space.Self);
     
  }
     
  if (Input.GetKey(KeyCode.A))
     
  {
     
     
cube.transform.Translate(0, 0, -5 * Time.deltaTime,
Space.Self);
     
  }
     
  if (Input.GetKey(KeyCode.D))
     
  {
     
     
cube.transform.Translate(0, 0, 5 * Time.deltaTime,
Space.Self);
     
  }
    }
}

脚本2:CheckCollision.cs    
 依附被控体,在碰撞事件发生后修改被控体碰撞的物件属性

using UnityEngine;
using System.Collections;

public class CheckCollision : MonoBehaviour {

// Use this for initialization
void Start () {
   
}
// Update is called once per frame
void Update () {
}
    ///
    ///
每次游戏对象碰撞时候都会执行这一方法
    ///
    /// 可以通过此获得碰撞游戏对象
    void
OnCollisionEnter(Collision co)
    {
     
  
     
  if(co.gameObject.GetComponent().material.color
== Color.blue)
     
  {
     
     
co.gameObject.GetComponent().material.color = Color.green;
     
  }
     
  else
     
     
co.gameObject.GetComponent().material.color = Color.blue;
    }
}







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: