阅读(4454) (0)

Unity 3D 实践案例二

2020-07-11 11:46:54 更新

在脚本编写中我们会经常用到移动、旋转、缩放功能,可以使用transform.Translate()transform.Rotate()transform.localScale 来实现这一效果。

本案例通过创建一个旋转立方体的实践操作,熟悉并掌握脚本编译中移动、旋转、缩放的函数编写以及与OnGUI 函数交互功能的实现。

案例设计

本案例计划通过 C# 脚本在 Unity 内创建一个简单的 Cube 模型,采用 OnGUI 函数写 3 个交互按钮,实现与 Cube 模型进行移动、旋转、缩放的交互功能。

案例实施

  1. 为游戏项目里的游戏场景添加两个游戏对象:CubeDirectional

Cube是脚本具体操作的游戏对象。

Directional是产生场景照明效果的游戏对象。

创建一个 Plane 位于 Cube 下方。调整游戏场景中 3 个游戏对象的位置,使得 Game 视图达到最佳的效果。

  1. 在 Project 视图里,新建一个 C# 脚本,命名为 MyScript,打开此脚本并添加下面的代码:

    using UnityEngine;
    using System.Collections;
    public class MyScript:MonoBehaviour
    {
        //声明4个变量
        public GameObject myCube;
        public int transSpeed=100;
        public float rotaSpeed=10.5f;
        public float scale=3;
        void OnGUI(){
            if(GUILayout.Button("移动立方体")){
                myCube.transform.Translate(Vector3.forward*transSpeed*Time.deltaTime, Space.World);
            }
            if(GUILayout.Button("旋转立方体")){
                myCube.transform.Rotate(Vector3.up*rotaSpeed, Space.World);
            }
            if(GUILayout.Button("缩放立方体")){
                myCube.transform.localScale=new Vector3(scale, scale, scale);
            }
        }
    }

该脚本声明了 4 个变量,并都使用 public进行修饰,所以它们都可以作为属性出现在组件下。

OnGUI() 函数用于在界面中显示按钮,玩家可以通过单击按钮实现与立方体的交互功能。

  1. 将脚本 MyScript 赋予 Main Camera

  1. 运行游戏,在 Game 视图的左上角会出现 3 个按钮:“移动立方体”、“旋转立方体”和“缩放立方体”。单击按钮,即可完成对立方体对象的指定操作。