赞
踩
1、unity(c#)打包webgl与js 通信
using System.Runtime.InteropServices;
说明:适用于2019版
var unityInstance = UnityLoader.instantiate("unityContainer", "Build/04.json", {onProgress: UnityProgress}); function CallProcessParameter(num) { (游戏对象的名称,定义方法的名称,传递的参数) unityInstance.SendMessage("Main Camera", "ProcessParameter", num); }
public void ProcessParameter(int num)
{
}
--------------------------------------------------------------------------------------------------------------------------------
2.获取游戏物体的标签 gameObject.tag
3.获取游戏物体的名字 gameObject.name
4.获取游戏物体的层级 gameObject.layer*/
1.位置:this.transform.position
2.角度:this.transform.eulerAngles
3,缩放大小:this.transform.lossyScale*/
1.transform.Getchild(序列号);
2.transform.GetsiblingIndex()---- - 获取同级索引(查找自已是父亲的第几个儿子)
3.transform.GetComponentInChildren<Transform>(序列号);*/
/*1.GameObject,Find()-----按照名字查找游戏对象 ,用太多会降低性能
2.GameObject,FindobjectType<>(); ------按照组件名来查找游戏物体
3.GameObject.FindGameObjectwithTag()------按照游戏物体标签来查找游戏物体*/
/* 常见类的继承关系:
自己创建的类->MonoBehavair->Behavir->Conpment->Object
不要爸爸了:this.transform.SetParent(null);
认爸爸 :this.transform.SetParent(GameObject.Find(“爸爸名”).transform);*/
/*不要儿子了: this.transform.DetachChildren();
得到儿子数量:this.transform.childCount
得到儿子信息: this.transform.GetChild(0);
亲子鉴定:son.IsChildOf(this.transform)
得到自己是第几个儿子:son.GetSiblingIndex())
把自己变成太子: son.SetAsFirstSibling();
把自己变成最后的一个儿子: son.SetAsLastSibling();
直接设置自己是第几个儿子: son.SetSiblingIndex(1);*/
// 使用平滑插值移动摄像机 (相机的位置,目标位置,移动速度)
transform.position = Vector3.Lerp(transform.position, targetPosition, movementSpeed * Time.deltaTime);
// 如果摄像机接近目标位置,切换到下一个路径点
(相机的位置,目标位置)
Vector3.Distance(transform.position, targetPosition) < 0.1f
// 计算目标旋转角度 (当前的位置,相机的位置)
Quaternion targetRotation = Quaternion.LookRotation(pathDoors[currentWaypointIndex].position - transform.position);
// 使用平滑插值旋转摄像机
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, rotationSpeed * Time.deltaTime);
Input.GetAxis:获取水平和垂直输入轴的值;
Transform 中属性
// 游戏对象
gameObject
// name 和 tag
name、tag
// 游戏对象的位置
position、localPosition
// 游戏对象的旋转角
eulerAngles、localEulerAngles、rotation、localRotation
// 游戏对象的缩放比
localScale
// 游戏对象的右方、上方、前方
right、up、forward
// 层级相关
root、parent、hierarchyCount、childCount
// 相机和灯光
camera、light
// 游戏对象的其他组件
animation、audio、collider、renderer、rigidbody
Transform 中方法
// 平移
Translate(Vector3 translation)
// 绕eulerAngles轴自转,自转角度等于eulerAngles的模长
Rotate(Vector3 eulerAngles)
// 绕过point点的axis方向的轴公转angle度
RotateAround(Vector3 point, Vector3 axis, float angle)
// 绕过point点的axis方向的轴公转angle度(坐标系采用本地坐标系)
RotateAroundLocal(Vector3 point, Vector3 axis, float angle)
// 看向transform组件的位置
LookAt(transform)
// 获取组件类型
GetType()
// 获取子游戏对象的Transform组件(不能获取孙子组件)
FindChild("name")
// 获取子游戏对象的Transform组件(可以获取孙子组件)
Find("name")
// 通过索引获取子游戏对象的Transform组件(不能获取孙子组件)
GetChild(index)
// 获取游戏对象的子对象个数
GetChildCount()
// 获取其他组件
GetComponent<T>
// 在子游戏对象中获取组件
GetComponentsInChildren<T>()
三维向量
如何使用 GetComponent 函数来处理其他脚本或组件的属性。
MeshRenderer meshRenderer;
获取组件的MeshRenderer
meshRenderer=GetComponent<MeshRenderer>();
设置颜色
meshRenderer.material.color = Color.red;
在Unity中,GameObject是游戏中最基本的实体。它可以被看作是游戏场景中所有其他对象的容器。GameObject可以包含许多不同的组件,如Transform、Renderer、Collider``等。通过添加这些组件,GameObject可以具有不同的属性和功能,如移动、旋转、显示和与其他对象进行交互等。
在Unity中,通过创建、实例化和管理GameObject对象,可以构建出一个完整的游戏场景。
using System的意思是引用名称为System的命名空间
GetAxis("Mouse Y"),
GetAxis("Mouse ScrollWheel"),
GetAxis("Vertical "),
GetAxis("Horizontal "),
1.Mouse X 鼠标沿着屏幕X移动时触发
2.Mouse Y 鼠标沿着屏幕Y移动时触发
3.Mouse ScrollWheel 当鼠标滚动轮滚动时触发
1.Vertical 对应键盘上面的上下箭头,当按下上或下箭头时触发
2.Horizontal 对应键盘上面的左右箭头,当按下左或右箭头时触发
//GetComponent<TMP_Text>(); 这样才能获取到TextMeshPro的值
TMP_Text textMeshPro = transform.GetComponent<TMP_Text>();
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。