Unity3D——简单入门知识以及实现鼠标控制物体移动、旋转

是时候拿出小本本整理一下最近游戏设计课程的东西辣!

简单的背景知识:

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<Renderer>().material.color = Color.white;
    }

移开鼠标 变回原来的颜色:

void OnMouseExit()   //当鼠标离开物体时 变回原来的颜色
    {
        GetComponent<Renderer>().material.color = oricolor;
    }

猜你喜欢

转载自blog.csdn.net/weixin_40406659/article/details/84030933