网站建设教学工作总结6,千万别去电商公司上班,长沙seo全网营销,如何让新网站快速收录1. 说明
当整个游戏运行起来之后#xff0c;我们无法再借助鼠标来控制物体#xff0c;此时可以使用脚本来更改物体的各种姿态#xff0c;驱动游戏的整体运动逻辑。
2. 脚本添加
首先在Assets目录中#xff0c;新创建一个Scripts文件夹#xff0c;在该文件内右键鼠标选择…1. 说明
当整个游戏运行起来之后我们无法再借助鼠标来控制物体此时可以使用脚本来更改物体的各种姿态驱动游戏的整体运动逻辑。
2. 脚本添加
首先在Assets目录中新创建一个Scripts文件夹在该文件内右键鼠标选择创建脚本选项即可创建一个脚本文件可命名为SampleLogic如下图 然后鼠标双击创建的脚本文件即可使用visual studio打开文件在其中进行代码编辑简单加入一行代码 最后需要将这个脚本文件挂载到物体模型上也就是当成一个组件添加到物体本身相当于给这个脚本一个寄宿的载体。选择一个物体在其右侧属性窗口的最下侧直接将脚本拖放过去如下图 拖放成功后会发现在其属性组件中会多一个Script组件当然也可以使用Add Component为物体添加脚本文件如下图 点击Scene窗口上方的运行按钮后即可运行游戏同时脚本也会被运行再次点击此按钮会结束运行如下图 C#脚本文件名必须和类名保持一致否则无法挂载到物体上若要修改类名需要在Visual Studio中对类名进行修改。
3. 脚本中获取当前物体
若想通过脚本挂载方式控制当前物体的运动那么需要在脚本中先获取到这个物体然后再写代码对这个物体的相关属性进行设置可以使用gameObject来获取详见代码注释
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Debug.Log(** 开始测试.... **);GameObject obj this.gameObject;//获取当前物体本身this代表当前脚本组件string name this.gameObject.name;//获取当前物体的名称Debug.Log(当前物体名称为: name);Transform tr this.gameObject.transform;//获取当前物体的transform组件Vector3 vec tr.position;//获取当前物体的坐标float posX tr.position.x;//获取当前物体的x坐标值float posY tr.position.y;//获取当前物体的y坐标值float posZ tr.position.z;//获取当前物体的z坐标值Debug.Log(物体当前坐标为 vec X: posX Y: posY Z: posZ);}// Update is called once per framevoid Update(){}
}4. 物体坐标
transform.position -- 世界坐标 transform.localPosition -- 本地坐标***一般使用这个***localPosition的值就是在属性窗口中设置的值 一般获取物体的坐标有两种方式: ①this.gameObject.transform.position ②this.transform.position简化版 对物体的坐标进行设置
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){this.transform.position new Vector3(1.0f, 1.5f, 1.0f);}// Update is called once per framevoid Update(){}
}5. 脚本解释
从上面的代码中可以看到一个脚本包含两个基本的函数一个是***start()函数一个是update()***函数 start()游戏运行起来后此函数只执行一次就是游戏刚启动时被执行 update()游戏运行后每更新一下画面该函数就会被执行一次。可以为unity设置帧率让其以一定的速率更新画面
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Application.targetFrameRate 60;//设定帧更新速率}// Update is called once per framevoid Update(){}
}持续更新中请大家多多关注…