完整脚本代码#p#分页标题#e# using System.Collections; using System.Coll

时间:2021-08-22 03:23:16

标签:

一、介绍

目的:通过一个简单的例子(鼠标点击,使立方体旋转和变色)熟悉Unity中C#脚本的编写。

软件环境:Unity 2017.3.0f3 、 VS2013。

二、C#脚本实现 1,启动Unity,创建游戏场景。【关于Unity根基操纵请点击 Unity入门教程(上)进行了解】

完整脚本代码#p#分页标题#e# using System.Collections; using System.Coll

2,在Assets目录下创建文件夹,,用于存放游戏的各类资源。 3,创建一个名为CubeRotate的C#脚本并拖放参加景的方块上,调解好相机位置。 4,双击打开脚本,在脚本中插手鼠标相关函数

完整脚本代码#p#分页标题#e# using System.Collections; using System.Coll

5,设定一个成果:当鼠标光标移动到物体上时,物体材质色彩变为黄色。

using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeRotate : MonoBehaviour { private bool bCube1 = false; private bool bCube2 = false; private Color OldColor; // Use this for initialization void Start () { OldColor = this.gameObject.GetComponent<Renderer>().material.color; //获取物体的原始颜色 } // Update is called once per frame void Update () { } void OnMouseOver() { this.gameObject.GetComponent<Renderer>().material.color = Color.yellow; //立方体变为黄色 bCube1 = true; } void OnMouseExit() { this.gameObject.GetComponent<Renderer>().material.color = OldColor; //立方体变为原始颜色 bCube1 = false; } void OnMouseDown() { if(bCube1) { bCube2 = true; } } }

代码解读:当鼠标光标移动到物体上时,物体变为黄色,同时将一个初始值为false的bCube1的值变为true;当鼠标光标分开后,物体材质色彩还原,bCube1为false;当按下鼠标左键,且bCube1的值为true,bCube2的值为真。

注:OnMouse函数都是执行一次的函数,因此不能将与动画有关的控制函数放于其内执行,所以凡是会用布尔值开关来控制Update函数中的动画函数。

6,在Update函数里实现Cube动弹

void Update () { if(bCube2) //当Cube为真时 { this.gameObject.transform.Rotate(Vector3.up * Time.deltaTime * 200); //Cube动弹 } }

因为Cube动弹是连续性的,所以把旋转脚本写在Update函数里面实现Cube动弹。

7,变动Spotlight的强度

// Use this for initialization void Start () { OldColor = this.gameObject.GetComponent<Renderer>().material.color; //获取物体的原始颜色 GameObject.Find("Spotlight").GetComponent<Light>().intensity = 1.0F; //获取Spotlight的强度属性 } // Update is called once per frame void Update () { if(bCube2) //当Cube为真时 { this.gameObject.transform.Rotate(Vector3.up * Time.deltaTime * 200); //Cube动弹 if(GameObject.Find("Spotlight").GetComponent<Light>().intensity < 8.0F) { GameObject.Find("Spotlight").GetComponent<Light>().intensity += 0.05F; } } }

8,UGUI的使用->添加Text组件

完整脚本代码#p#分页标题#e# using System.Collections; using System.Coll

9,添加控制Text显示的脚本

使用UGUI组件必需在C#脚本中添加UI的定名空间,这样我们才华引用。当bCube2的值为真时,Text组件显示“Cube正在旋转中...”,所以在Update函数的if语句里面应添加以下脚本

GameObject.Find("Text").GetComponent<Text>().text = "Cube正在旋转...";

10,点击“Play”按钮,运行游戏

鼠标点击前:

完整脚本代码#p#分页标题#e# using System.Collections; using System.Coll

鼠标点击后:

完整脚本代码#p#分页标题#e# using System.Collections; using System.Coll

11,完整脚本代码