是时候拿出小本本整理一下最近游戏设计课程的东西辣!
简单的背景知识:
Unity3D由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。过去Unity支持三种编程语言:JavaScript、C#和Boo,现在只支持C#。
Unity3D的界面是酱紫的:
场景视图(Scene View),用于设置场景以及放置游戏对象,是构造游戏场景的地方。
游戏视图(Game View),有场景中的相机所渲染的游戏画面,是游戏发布后玩家所能看到的内容。
层级视图(Hierarchy),用于显示当前场景中所有游戏对象的层级关系。在这个视图中,可以通过拖拽的方式在当前项目中添加对象,并设定对象间的父子层级关系。将脚本拖到Hierarchy栏的GameObject上,可以添加脚本。
项目视图(Project),展示整个工程中所有可用资源,例如模型,脚本,材质等,可以添加和删除。
检视视图(Inspector),用于显示当前所选择游戏对象的相关属性与信息,可以调整各种参数
Unity脚本可以用多种编译器编写,Windows上可以配置VS,Mac上可以用TextMate。我使用的是Visual Studio。
新建的Unity C#脚本会默认添加两个命名空间:
using UnityEngine;
using System.Collections;
其他命名空间需自行根据需要添加,例如如果需要一些常用的UI类,(如Text、RawImage等),要引入新的命名空间UnityEngine.UI。
在Unity中,任何要绑定到GameObject上的脚本都必须继承自MonoBehaviour。
所以新建的C#脚本是酱紫的:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewScript : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
更加详细的Unity下载安装和面板的介绍请看->https://blog.csdn.net/liyuerge/article/details/78518972
实现:按住鼠标左键——拖动物体
按住鼠标右键——旋转物体
悬停在物体上——变色
首先在场景中添加一个Cylinder:
按住鼠标左键拖动物体:
if (Input.GetMouseButton(0) && obj != null) //按住鼠标左键 拖动
{
if (Input.GetMouseButton(0))
{
Vector3 targetScreenSpace = objCamera.WorldToScreenPoint(obj.position); //获取物体原本位置
Vector3 point = Input.mousePosition; //获取鼠标位置
obj.position = objCamera.ScreenToWorldPoint(new Vector3(point.x, point.y, targetScreenSpace.z)); //更新物体位置 至 鼠标位置
}
}
按住鼠标右键旋转物体:
else if (Input.GetMouseButton(1) && obj != null) //按住鼠标右键 旋转
{
obj.Rotate(Vector3.up, -Input.GetAxis("Mouse X") * 10, Space.World);
obj.Rotate(Vector3.right, Input.GetAxis("Mouse Y") * 10, Space.World);
}
当鼠标悬停在物体上时 改变物体的颜色
void OnMouseEnter() //当鼠标在物体上时,改变物体颜色。
{
GetComponent().material.color = Color.white;
}
移开鼠标 变回原来的颜色:
void OnMouseExit() //当鼠标离开物体时 变回原来的颜色
{
GetComponent().material.color = oricolor;
}