Unity3D】【Unity基础】GameObject类怎么使用?

2020-11-27 15:46发布

11条回答
IT学习
2楼 · 2020-11-27 16:06

Unity下的GameObject类

引擎下的GameObject菜单

引擎下的GameObject菜单02-Unity下的GameObjcet类属性Name 对象名,可以重复,无限数量 Tag 对象的标签,在Tags&Layer面板中设置 当物体可能是空物体时,(游戏开发中,常用空物体去保存一些位置信息,空物体没有渲染,这时给物体添加一个图标,便于寻找与查看) Layer 标记对象渲染组名字,常用于射线碰撞,摄像机裁剪,最多只能有32组 activeInHierarchy 判断对象在层级视图是否隐藏,隐藏为false,反之True acticveSelf 只读属性,得到当前对象的状态(隐藏/启用) isStatic 是否静态对象(静态对象表明只有一个) transform 对象的位置,旋转,大小信息 scene 场景,获得当前对象的场景相关的信息03-Unity下的GameObjcet类属性使用// 打印当前游戏对象的名字


Kindery
3楼 · 2020-11-27 16:16

通过代码给游戏物体添加组件
如:添加一个刚体组件(可以添加任意组件,包括自定义脚本)

蜗牛
4楼 · 2020-11-27 18:03

大概率在使用gameObject对象,去访问属性,获取组件,查找游戏对象

GameObject.Find()也可以找到游戏对象

GameObject也可以创建一个简单的游戏对象


我是大脸猫
5楼 · 2020-11-27 21:53

创建物体的三种方法,这三种方法实际上都是属于GameObject类的方法

using System.Collections;using System.Collections.Generic;using UnityEngine;//创建gameObject的方法public class gameObject : MonoBehaviour {public GameObject prefab;// Use this for initializationvoid Start () {
    //1.第一种创建方法(创建空的游戏物体,名字为New Game Object)
    //也可以对其进行命名,比如命名为“Cube”
    new GameObject();
    GameObject go = new GameObject("Cube");

    //第二种创建方法 静态方法Instantiate()
    //根据prefab或者场景中的游戏物体/特效来实例化的(理解:一个类的实例化过程)
    GameObject.Instantiate(prefab);

    //第三中创建方法  CreatePrimitive() 创建一些原始的图元或形状
    //原始的图元比如:cube plane等等
    GameObject.CreatePrimitive(PrimitiveType.Cube);
    GameObject.CreatePrimitive(PrimitiveType.Capsule);}// Update is called once per framevoid Update () {
    }}

通过代码给游戏物体添加组件
如:添加一个刚体组件(可以添加任意组件,包括自定义脚本)

GameObject go = new GameObject("Cube");go.AddComponent();

GameObject的两个常用属性:

GameObject go = new GameObject("Cube");//表示游戏物体是否在Hierarchy面板中激活Debug.Log(go.activeInHierarchy); //truego.SetActive(false); Debug.Log(go.activeInHierarchy); //false//tag标签,用来区分不同的游戏物体Debug.Log(go.tag);

其他属性:
layer  分层
scene   所在场景
tag      标签
transform

GameObject的静态方法
1.GameObject.CreatePrimitive  见上面第三种创建物体的方法
2.GameObject.Find    (根据名字)查找游戏物体
通过遍历来查找(当游戏物体较多时,比较耗费性能)
3.GameObject.FindGameObjectsWithTag
返回所有符合这个标签的游戏物体(一个数组)
4.GameObject.FindWithTag
返回第一个符合这个标签的游戏物体




public GameObject prefab1;//声明 GameObject prefab=(GameObject)Instantiate(prefab1);//创建这个预设物GameObject 先要把一个预设物拖拽到public声明的那个变量那里,然后用下面那一句可以创建这个预设物 至于操控,是与普通GameObject一样

不吃鱼的猫
7楼 · 2020-11-29 11:32

GameObject.Find()也可以找到游戏对象,GameObject也可以创建一个简单的游戏对象

Ross
8楼 · 2020-11-30 16:44

可以使用GameObject类查找在场景中的物体,但该物体不能是隐藏的,查找的时候即可以通过名字查找,也可以通过tag值查找.另外也可以查找有相同tag值的所有物体,另外可以查找有相同组件类型的所有物体.

希希
9楼 · 2020-11-30 22:51

Unity下的GameObject类

引擎下的GameObject菜单

引擎下的GameObject菜单02-Unity下的GameObjcet类属性Name 对象名,可以重复,无限数量 Tag 对象的标签,在Tags&Layer面板中设置 当物体可能是空物体时,(游戏开发中,常用空物体去保存一些位置信息,空物体没有渲染,这时给物体添加一个图标,便于寻找与查看) Layer 标记对象渲染组名字,常用于射线碰撞,摄像机裁剪,最多只能有32组 activeInHierarchy 判断对象在层级视图是否隐藏,隐藏为false,反之True acticveSelf 只读属性,得到当前对象的状态(隐藏/启用) isStatic 是否静态对象(静态对象表明只有一个) transform 对象的位置,旋转,大小信息 scene 场景,获得当前对象的场景相关的信息03-Unity下的GameObjcet类属性使用// 打印当前游戏对象的名字


相关问题推荐

  • 回答 17

    还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学  学学js flash as等等  有个梯度就好多了如果要用好unity  不会编程那是不行的  学习的过程中都有个头疼的过程  记住  头越痛  代表你要接受的东西越多  坚持 你的大脑在和知识兼容中:D...

  • unity如何自学Unity3D 2022-01-06 15:24
    回答 18

    可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 2

    Shader Unlit/Test{Properties{_MainTex(MainTex,2D)=white{}_MainColor(MainColor,COLOR)=(1,1,1,1)_AddTex(AddTex,2D)=white{}_Maxset(Max,Range(0.1,1.0))=0.1}SubShader{Tags{RenderType=Transparent Queue=Tran...

  • 回答 4

    文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...

  • 回答 7

    策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样!    游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...

  • 回答 7
    已采纳

    可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。

  • 回答 3
    已采纳

    游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...

  • 回答 5

    void Update(){          transform.rotation = Quaternion.Euler(Vector3.zero);}可以试一下,保证物体x轴和z轴为0就可以使其一直垂直。

  • 回答 3

    界面左右移动、上下移动。。本质都是:手指滑动。。。可以参考这些:https://www.cnblogs.com/coldcode/p/5362537.htmlhttps://blog.csdn.net/totosj/article/details/80112852https://blog.csdn.net/zcc858079762/article/details/85253120...

  • 回答 6

    首先新建一个C#脚本,命名为MyFollow,然后把以下代码粘贴进去,保存:AخA 1using UnityEngine;2using System.Collections;3public class MyFollow : MonoBehaviour4{5    public float distanceAway = 5;          // distance...

  • 回答 5

    安装高通的Vuforia插件即可。

  • 回答 5

    不可以,只能一个工程打一个包。

  • 回答 2

    Edit->Project Settings->Graphics 找到Shader Stripping 中fog mode设置为custom(原来是Automatic),然后选中你想要的模式,最后重新打包就ok

  • 回答 2

    用到的插件:System.Drawing.dllSystem.Windows.Forms.dllSystem.Deployment.dll(运用基于.Net4.x的dll打包时,需要用到该dll,否则会报错)代码如下:using System;using System.Runtime.InteropServices;using UnityEngine;using UnityEngine.UI; p......

  • 回答 6

    如下图,设置为none,然后删掉滑动条就可以了。

没有解决我的问题,去提问