前言
在学习软件构造这门课的时候,对unity和c#进行了 一定程度的学习,包括简单的建立地形,添加对象,添加材质等,前不久刚好学习了如何通过c#脚本对模型进行操控,在此记录一下。
使用的语言是c#,使用的工具是visual studio
添加脚本到unity
首先创建一个c#脚本文件
拖动文件到对应对象的状态栏的“添加组件上”
这样就说明脚本已经被添加到对象上
编写c#脚本
添加完之后就可以对脚本进行编辑
点击脚本旁边的三个点,点击编辑脚本,就会打开vs对脚本进行编辑
一些基础的脚本代码
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
//Transform transform;
GameObject obj;
//GameObject obj1;
public float floSpeed = 0;
public float floRotate = 0;
// Start is called before the first frame update
void Start()
{
obj = GameObject.Find("Sphere");
// obj1 = GameObject.Find("Cube");
Debug.Log(transform.name); //名字
Debug.Log(transform.tag); //标签
Debug.Log(transform.position); //位置
Debug.Log(transform.rotation); //角度
Debug.Log(transform.eulerAngles); //欧拉角
Debug.Log(transform.localEulerAngles); //局部欧拉角
Debug.Log(transform.localPosition); //局部位置
Debug.Log(transform.localRotation); //局部角度
Debug.Log(transform.localScale); //局部缩放
Debug.Log(transform.parent); //父物体
Debug.Log(transform.childCount); //子物体数量
Debug.Log(transform.forward); //前方
Debug.Log(transform.up); //上方
//复制对象
//GameObject.Instantiate(obj, transform.position, transform.rotation);
}
// Update is called once per frame
void Update()
{
//物体移动的第一种方法
//transform.position += Vector3.up * floSpeed*Time.deltaTime;//记录每帧运行的时间
//物体移动的第二种方法
transform.Translate(Vector3.up * floSpeed * Time.deltaTime);
//物体旋转
transform.Rotate(Vector3.up * floRotate * Time.deltaTime);//旋转轴
//绕。。。物体旋转
transform.RotateAround(obj.transform.position, Vector3.up ,floRotate * Time.deltaTime);
//盯住看
transform.LookAt(Camera.main.transform);
//其他常用方法
//GameObject.Destroy(obj); //删除对象
//Resources.Load();//加载游戏资源
//Application.Quit();//退出游戏
}
}
因为代码中有同样操作的多种方法,所以对一些代码进行了注释以免造成相互影响的结果
这段代码它定义了一个名为NewBehaviourScript的类,继承自MonoBehaviour。这个类有以下功能:
在Start方法中,它获取了名为Sphere的游戏对象,并打印了自身的一些属性,如名字、标签、位置、角度、欧拉角、局部欧拉角、局部位置、局部角度、局部缩放、父物体、子物体数量、前方和上方。
在Update方法中,它根据floSpeed和floRotate的值,实现了物体的移动和旋转。它还使用transform.RotateAround方法,让自身绕着Sphere对象旋转。最后,它使用transform.LookAt方法,让自身始终面向主摄像机。
在注释中,它还提到了一些其他常用的方法,如GameObject.Instantiate, GameObject.Destroy, Resources.Load和Application.Quit。文章来源:https://www.toymoban.com/news/detail-745384.html
查看效果
编写完成保存后,代码就会自动在unity中产生效果
play一下试试效果
可以看到在脚本的控制下,对象模型(小球)发生了移动,当然也可以让它进行旋转或者其他操作,在此就不做演示
值得一提的是,如果想要让对象进行“绕着某一物体进行旋转的操作”就需要,有两个对象,这正是代码中“ Game Object obj”的作用,它通过这行代码“ obj = GameObject.Find(“Sphere”)”找到了对应的对象,并且使用“obj”来指代,方便后续调用文章来源地址https://www.toymoban.com/news/detail-745384.html
到了这里,关于记录:Unity脚本的编写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!