codecamp

Unity 3D 实践案例二

在脚本编写中我们会经常用到移动、旋转、缩放功能,可以使用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 个按钮:“移动立方体”、“旋转立方体”和“缩放立方体”。单击按钮,即可完成对立方体对象的指定操作。

Unity 3D 实践案例一
Unity 3D 实践案例三
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }