在Unity世界里遇到的第一个错误!

Posted 阶梯之上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Unity世界里遇到的第一个错误!相关的知识,希望对你有一定的参考价值。

今天看了一个视频是介绍碰撞检测的,然后我做了一个实验来测试碰撞检测。


首先是create了4个cube,分别命名为C1,C2,C3,C4,然后写了一个脚本名为Move.cs来利用键盘wsad键控制C4的上下左右移动,

代码如下:

using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour 
    GameObject go;
	// Use this for initialization
	void Start () 
        go = GameObject.Find("C4");
        go.renderer.material.color = Color.red;
	
	
	// Update is called once per frame
	void Update () 
	if(Input.GetKey(KeyCode.W))
    
        go.transform.Translate(0, 0, 5 * Time.deltaTime, Space.Self);
    
    if(Input.GetKey(KeyCode.S))
    
        go.transform.Translate(0, 0, -5 * Time.deltaTime, Space.Self);
    
    if (Input.GetKey(KeyCode.A))
    
        go.transform.Translate(-5 * Time.deltaTime, 0, 0, Space.Self);
    
    if (Input.GetKey(KeyCode.D))
    
        go.transform.Translate(5 * Time.deltaTime, 0, 0, Space.Self);
    
	


然后又写了一个脚本让被C4碰撞的物体变色:

using UnityEngine;
using System.Collections;

public class MoveCollision : MonoBehaviour 

	// Use this for initialization
	void Start () 
	
	
	
	// Update is called once per frame
	void Update () 
	
	
    void OnCollisionEnter(Collision co)
    
        co.gameObject.renderer.material.color = Color.blue;
    

在这里重点说一下:我之前的代码名字不是叫MoveCollision.cs ,而是叫Collision.cs,然后就出现了如下错误: 

Script error: OnCollisionEnter

This message parameter has to be of type: Collision

The message will be ignored.

这是因为Collision 这个名字与Unity的内置名称相冲突,所以不能以此命名,应改为MoveCollision;

这样,程序完美输出!


以上是关于在Unity世界里遇到的第一个错误!的主要内容,如果未能解决你的问题,请参考以下文章

unity怎么获取一个物体上材质球的名字?有多个材质球,怎么用C#脚本判断这个物体上的材质球是哪个

Unity3D怎么让地形中随机出现物体?

Unity 本地坐标到世界坐标,世界坐标到本地坐标

在unity3d里无法移动物体

unity里怎么让一个物体在在5秒内从某点移动到另外一点?

unity3d物体旋转