2020-11-27 15:46发布
1. Gamaobject 类中 属性:GameObject.activeSelf 是否活动
GameObject.tag 标签
GameObject.layer 层
GameObject.name名字
2. 创建游戏对象
在Unity场景中出现的所有实体都属于游戏对象,比如系统自带的立方体、球体以及美工制作的.FBX游戏模型等。游戏对象与脚本联系常紧密,因为游戏对象之间的一切交互都需要使用脚本来完成。 使用脚本来调用游戏对象的方式有两种:一、将脚本绑定在一个游戏对象上;二、在代码中动态绑定脚本和删除脚本。任何一个游戏对象都可以同时绑定多条游戏脚本,并且这些脚本互不干涉,各自完成各自的生命周期。 脚本创建游戏对象: GameObject.CreatePrimitive(PrimitiveType.Cube);
3.游戏对象的克隆
克隆游戏对象从效率上讲,克隆一个对象要比创建一个对象效率要高。常用于一些完全相同并且数量庞大的游戏对象,比如发射的子弹对象,每一颗子弹对象是完全一样的,每一次发射子弹都会克隆一个子弹对象,并且让克隆的子弹对象完成自己的生命周期。public static Object Instantiate (Object original)这实际上在Unity和使用复制(ctrl+D)命令是一样的。如果一个游戏物体,绑定了组件或脚本,将克隆整个游戏物体层次,以及所有子对象也会被克隆。所有游戏物体被激活。 using UnityEngine;using System.Collections; public class Test : MonoBehaviour { //将克隆对象与脚本建立联系的变量 public GameObject template; void Start () { // 实例化对象 GameObject cloneGameObject= GameObject.Instantiate(template);//修改克隆对象的名称 cloneGameObject.name="my_sphere"; // 激活对象// cloneGameObject.SetActive(true);// 关闭对象// cloneGameObject.SetActive(false); } }
4获取游戏对象
1.GameObject.Find 查找static GameObject Find (string name) 找到并返回一个名字为name的游戏物体。如果以name为名字的游戏物体没有被找到,则返回空如果name中包含‘/’字符,这个名称将被视作一个hierarchy中的路径名.这个函数只返回活动的游戏物体。除非迫不得已,建议不要在每一帧中使用这个函数。可以在开始的时候用一个成员变量来缓存结果 2.GameObject.FindWithTag 查找标签static GameObject FindWithTag (string tag)返回一个用tag做标识的活动的游戏物体,如果没有找到则为空。标签必须在使用之前到标签管理器里面声明。标签用于在脚本中通过标签名称快速查找物体。在标签管理器中可以设置层和标签。它位于菜单Edit->Project Settings->Tags.系统默认的7个标签:Untagged(未标记) Respawn(重生)Finish(完成)EditorOnly(只编辑)MainCamera(主摄像机)Player(游戏者)GameController(游戏控制器) 3.GameObject.FindGameObjectsWithTag 查找相同标签的游戏物体列表static GameObject[] FindGameObjectsWithTag (string tag) 返回一个用tag做标识的活动的游戏物体的列表.如果没有找到则 为 空。标签必须在使用之前到标签管理器里面声明。 4.运行游戏后,在代码中也可以动态添加与修改标签,但是必须提前在标签管理器中注册该标签,否则在程序 中修改标签时会抛出异常,提示无法找到该标签。using UnityEngine;using System.Collections;public class Test07 : MonoBehaviour { GameObject capsule; public GameObject[] peoples; void Start () { //通过名称查找对象 //capsule = GameObject.Find("Capsule"); //通过标签查找对象 capsule =GameObject.FindGameObjectWithTag("people");// capsule.tag="people3";// Debug.Log(capsule.name+ " : "+ capsule.tag); peoples =GameObject.FindGameObjectsWithTag("people"); for(int i=0;i { Debug.Log(peoples[i].name); } } void Update () { }} 5 游戏对象的销毁
GameObject.Destroy();
在游戏编程中 尽量不要大量的find() 和destory() 这样消耗内存
要用 findwithtag() 和_______代替
GameObject为所有可以放到Unity场景中的物体的基类,可以理解为组件的容器。
可以设置物体的名字,Tag和Layer等基本信息;
也可以有对组件的管理,添加、更改、删除等操作;
此外还支持对层级的管理,如父子关系、父物体和子物体等。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//创建gameObject的方法
public class gameObject : MonoBehaviour {
public GameObject prefab;
// Use this for initialization
void 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 frame
void Update () {
还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学 学学js flash as等等 有个梯度就好多了如果要用好unity 不会编程那是不行的 学习的过程中都有个头疼的过程 记住 头越痛 代表你要接受的东西越多 坚持 你的大脑在和知识兼容中:D...
可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...
可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...
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...
文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...
策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样! 游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...
可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。
游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...
void Update(){ transform.rotation = Quaternion.Euler(Vector3.zero);}可以试一下,保证物体x轴和z轴为0就可以使其一直垂直。
界面左右移动、上下移动。。本质都是:手指滑动。。。可以参考这些:https://www.cnblogs.com/coldcode/p/5362537.htmlhttps://blog.csdn.net/totosj/article/details/80112852https://blog.csdn.net/zcc858079762/article/details/85253120...
首先新建一个C#脚本,命名为MyFollow,然后把以下代码粘贴进去,保存:AخA 1using UnityEngine;2using System.Collections;3public class MyFollow : MonoBehaviour4{5 public float distanceAway = 5; // distance...
安装高通的Vuforia插件即可。
不可以,只能一个工程打一个包。
Edit->Project Settings->Graphics 找到Shader Stripping 中fog mode设置为custom(原来是Automatic),然后选中你想要的模式,最后重新打包就ok
用到的插件:System.Drawing.dllSystem.Windows.Forms.dllSystem.Deployment.dll(运用基于.Net4.x的dll打包时,需要用到该dll,否则会报错)代码如下:using System;using System.Runtime.InteropServices;using UnityEngine;using UnityEngine.UI; p......
如下图,设置为none,然后删掉滑动条就可以了。
最多设置5个标签!
1. Gamaobject 类中 属性:GameObject.activeSelf 是否活动
GameObject.tag 标签
GameObject.layer 层
GameObject.name名字
2. 创建游戏对象
在Unity场景中出现的所有实体都属于游戏对象,比如系统自带的立方体、球体以及美工制作的.FBX游戏模型等。游戏对象与脚本联系常紧密,因为游戏对象之间的一切交互都需要使用脚本来完成。
使用脚本来调用游戏对象的方式有两种:
一、将脚本绑定在一个游戏对象上;
二、在代码中动态绑定脚本和删除脚本。
任何一个游戏对象都可以同时绑定多条游戏脚本,并且这些脚本互不干涉,各自完成各自的生命周期。
脚本创建游戏对象: GameObject.CreatePrimitive(PrimitiveType.Cube);
3.游戏对象的克隆
克隆游戏对象从效率上讲,克隆一个对象要比创建一个对象效率要高。常用于一些完全相同并且数量庞大的游戏对象,比如发射的子弹对象,每一颗子弹对象是完全一样的,每一次发射子弹都会克隆一个子弹对象,并且让克隆的子弹对象完成自己的生命周期。
public static Object Instantiate (Object original)
这实际上在Unity和使用复制(ctrl+D)命令是一样的。如果一个游戏物体,绑定了组件或脚本,将克隆整个游戏物体层次,以及所有子对象也会被克隆。所有游戏物体被激活。
using UnityEngine;
using System.Collections;
public class Test : MonoBehaviour {
//将克隆对象与脚本建立联系的变量
public GameObject template;
void Start () {
// 实例化对象
GameObject cloneGameObject= GameObject.Instantiate(template);
//修改克隆对象的名称
cloneGameObject.name="my_sphere";
// 激活对象
// cloneGameObject.SetActive(true);
// 关闭对象
// cloneGameObject.SetActive(false);
}
}
4获取游戏对象
1.GameObject.Find 查找static GameObject Find (string name) 找到并返回一个名字为name的游戏物体。如果以name为名字的游戏物体没有被找到,则返回空如果name中包含‘/’字符,这个名称将被视作一个hierarchy中的路径名.这个函数只返回活动的游戏物体。除非迫不得已,建议不要在每一帧中使用这个函数。可以在开始的时候用一个成员变量来缓存结果
{
2.GameObject.FindWithTag 查找标签static GameObject FindWithTag (string tag)返回一个用tag做标识的活动的游戏物体,如果没有找到则为空。标签必须在使用之前到标签管理器里面声明。标签用于在脚本中通过标签名称快速查找物体。在标签管理器中可以设置层和标签。
它位于菜单Edit->Project Settings->Tags.
系统默认的7个标签:
Untagged(未标记)
Respawn(重生)
Finish(完成)
EditorOnly(只编辑)
MainCamera(主摄像机)
Player(游戏者)
GameController(游戏控制器)
3.GameObject.FindGameObjectsWithTag 查找相同标签的游戏物体列表static GameObject[] FindGameObjectsWithTag (string tag) 返回一个用tag做标识的活动的游戏物体的列表.如果没有找到则 为 空。标签必须在使用之前到标签管理器里面声明。
4.运行游戏后,在代码中也可以动态添加与修改标签,但是必须提前在标签管理器中注册该标签,否则在程序 中修改标签时会抛出异常,提示无法找到该标签。
using UnityEngine;
using System.Collections;
public class Test07 : MonoBehaviour {
GameObject capsule;
public GameObject[] peoples;
void Start () {
//通过名称查找对象
//capsule = GameObject.Find("Capsule");
//通过标签查找对象
capsule =GameObject.FindGameObjectWithTag("people");
// capsule.tag="people3";
// Debug.Log(capsule.name+ " : "+ capsule.tag);
peoples =GameObject.FindGameObjectsWithTag("people");
for(int i=0;i
Debug.Log(peoples[i].name);
}
}
void Update () {
}
}
5 游戏对象的销毁
GameObject.Destroy();
在游戏编程中 尽量不要大量的find() 和destory() 这样消耗内存
要用 findwithtag() 和_______代替
GameObject为所有可以放到Unity场景中的物体的基类,可以理解为组件的容器。
可以设置物体的名字,Tag和Layer等基本信息;
也可以有对组件的管理,添加、更改、删除等操作;
此外还支持对层级的管理,如父子关系、父物体和子物体等。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//创建gameObject的方法
public class gameObject : MonoBehaviour {
public GameObject prefab;
// Use this for initialization
void 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 frame
void Update () {
}
}
相关问题推荐
还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学 学学js flash as等等 有个梯度就好多了如果要用好unity 不会编程那是不行的 学习的过程中都有个头疼的过程 记住 头越痛 代表你要接受的东西越多 坚持 你的大脑在和知识兼容中:D...
可以先思考学习的目的,是什么因素在驱动你。是完成一款作品?进入某个行业?还是探究某类问题?否则和技术相关的知识浩如烟海,很容易迷失在细枝末节上。而要找到动力源头。个人的经验,就是关注一些和自己同方向,同类型的创作者。他们输出的作品会激励你,...
可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...
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...
文章主要为大家详细介绍了Unity Shader实现水波纹效果,文中示例代码介绍的非常详细具体代码实现如下:Shader Custom/shuibowen{ Properties{ _MainTex(Base (RGB),2D)=white{} _distanceFactor(Distancefactor,float)=1 _timeFactor(time factor,float)=...
策划的最基本的原则就是:改进缺点,做别人没有做到的。无论游戏策划还是其它策划都是一样! 游戏策划的第二个原则:放飞思想。也许你认为我是说策划们应该充满想象力,能想一些匪夷所思的东西!对不起。不是这意思!一个合格的策划不是为了发泄自己的...
可以多玩一些其它的游戏,看一些科幻电影等,寻找灵感。
游戏架构与设计不纯粹是一门科学,它不需要提出假设或探究真理,也不被逻辑或正规方法的严格标准所束缚。游戏的目的就是通过玩来获得娱乐,因此游戏设计即需要艺术家一样的创造力,也需要工程师一样的精心规划。游戏设计是一门手艺,就像好莱坞的电影摄像或服...
void Update(){ transform.rotation = Quaternion.Euler(Vector3.zero);}可以试一下,保证物体x轴和z轴为0就可以使其一直垂直。
界面左右移动、上下移动。。本质都是:手指滑动。。。可以参考这些:https://www.cnblogs.com/coldcode/p/5362537.htmlhttps://blog.csdn.net/totosj/article/details/80112852https://blog.csdn.net/zcc858079762/article/details/85253120...
首先新建一个C#脚本,命名为MyFollow,然后把以下代码粘贴进去,保存:AخA 1using UnityEngine;2using System.Collections;3public class MyFollow : MonoBehaviour4{5 public float distanceAway = 5; // distance...
安装高通的Vuforia插件即可。
不可以,只能一个工程打一个包。
Edit->Project Settings->Graphics 找到Shader Stripping 中fog mode设置为custom(原来是Automatic),然后选中你想要的模式,最后重新打包就ok
用到的插件:System.Drawing.dllSystem.Windows.Forms.dllSystem.Deployment.dll(运用基于.Net4.x的dll打包时,需要用到该dll,否则会报错)代码如下:using System;using System.Runtime.InteropServices;using UnityEngine;using UnityEngine.UI; p......
如下图,设置为none,然后删掉滑动条就可以了。