Unity中添加组件的几种方法
2016-07-18 11:41
375 查看
一、在编辑器上面添加一个组件。这个不用多说。
二、在脚本中利用AddComponent函数添加一个组件,例如:
using UnityEngine;
using System.Collections;
public class CharacterSpawner : MonoBehaviour {
public void Spawn(GameObject CharacterSlected){
if(CharacterSlected){
GameObject player = (GameObject)GameObject.Instantiate(CharacterSlected,this.transform.position,Quaternion.identity);
if(!player.GetComponent<PlayerManager>()){
player.AddComponent<PlayerManager>();
}
}
}
}
AddComponent的官方说明:
GameObject.AddComponent
Component AddComponent(string className);
Description
Adds a component class named
Use this function to change behaviour of objects on the fly. You can also add script to game objects by passing in the name of the script class.
Some components require other components to exist in the same game object as well. This function automatically adds any required components as well eg. if you add a HingeJoint this
will automatically add a Rigidbody as well.
Component AddComponent(Type componentType);
Description
Adds a component class of type
Note that there is no RemoveComponent(), to remove a component, use Object.Destroy.
三、利用RequireComponent添加一个组件。
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(PlayerCharacterController))]
[RequireComponent(typeof(PlayerCharacterUI))]
[RequireComponent(typeof(PlayerQuestManager))]
[RequireComponent(typeof(PlayerSave))]
public class PlayerManager : MonoBehaviour {
}
RequireComponent意思是表面这个类一定需要哪些组件,如果目前这些组件没有被加上,就自动加上。
官方解释:
RequireComponentNamespace:
UnityEngine
Description
The RequireComponent attribute lets automatically add required component as a dependency.
When you add a script which uses RequireComponent, the required component will automatically be added to the game object. This is useful to avoid setup errors. For example a script might require that a rigid body is always added
to the same game object. Using RequireComponent this will be done automatically, thus you can never get the setup wrong.
C# Example:
二、在脚本中利用AddComponent函数添加一个组件,例如:
using UnityEngine;
using System.Collections;
public class CharacterSpawner : MonoBehaviour {
public void Spawn(GameObject CharacterSlected){
if(CharacterSlected){
GameObject player = (GameObject)GameObject.Instantiate(CharacterSlected,this.transform.position,Quaternion.identity);
if(!player.GetComponent<PlayerManager>()){
player.AddComponent<PlayerManager>();
}
}
}
}
AddComponent的官方说明:
GameObject.AddComponent
Component AddComponent(string className);
Description
Adds a component class named
classNameto the game object.
Use this function to change behaviour of objects on the fly. You can also add script to game objects by passing in the name of the script class.
Some components require other components to exist in the same game object as well. This function automatically adds any required components as well eg. if you add a HingeJoint this
will automatically add a Rigidbody as well.
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public SphereCollider sc; void Example() { gameObject.AddComponent("FoobarScript"); sc = gameObject.AddComponent("SphereCollider") as SphereCollider; } }
Component AddComponent(Type componentType);
Description
Adds a component class of type
componentTypeto the game object. C# Users can use a generic version.
<em>no example available in C#</em>
Note that there is no RemoveComponent(), to remove a component, use Object.Destroy.
三、利用RequireComponent添加一个组件。
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(PlayerCharacterController))]
[RequireComponent(typeof(PlayerCharacterUI))]
[RequireComponent(typeof(PlayerQuestManager))]
[RequireComponent(typeof(PlayerSave))]
public class PlayerManager : MonoBehaviour {
}
RequireComponent意思是表面这个类一定需要哪些组件,如果目前这些组件没有被加上,就自动加上。
官方解释:
RequireComponentNamespace:
UnityEngine
Description
The RequireComponent attribute lets automatically add required component as a dependency.
When you add a script which uses RequireComponent, the required component will automatically be added to the game object. This is useful to avoid setup errors. For example a script might require that a rigid body is always added
to the same game object. Using RequireComponent this will be done automatically, thus you can never get the setup wrong.
<em>// Mark the PlayerScript as requiring a rigidbody in the game object. @script <a target=_blank target="_blank" href="http://blog.csdn.net/monzart7an/article/details/RequireComponent.html" style="color: rgb(20, 93, 123); text-decoration: none;">RequireComponent</a>(<a target=_blank target="_blank" href="http://blog.csdn.net/monzart7an/article/details/Rigidbody.html" style="color: rgb(20, 93, 123); text-decoration: none;">Rigidbody</a>)</em><p class="basic" style="margin-top: 0px; margin-bottom: 1.5em; padding-top: 0px; padding-bottom: 0px; font-family: Helvetica, Arial, sans-serif; color: rgb(68, 68, 68);"></p><em>function FixedUpdate() { rigidbody.AddForce(<a target=_blank target="_blank" href="http://blog.csdn.net/monzart7an/article/details/Vector3-up.html" style="color: rgb(20, 93, 123); text-decoration: none;">Vector3.up</a>); } </em>
C# Example:
<em>[<a target=_blank target="_blank" href="http://blog.csdn.net/monzart7an/article/details/RequireComponent.html" style="color: rgb(20, 93, 123); text-decoration: none;">RequireComponent</a> (typeof (<a target=_blank target="_blank" href="http://blog.csdn.net/monzart7an/article/details/Rigidbody.html" style="color: rgb(20, 93, 123); text-decoration: none;">Rigidbody</a>))] public class PlayerScript : <a target=_blank target="_blank" href="http://blog.csdn.net/monzart7an/article/details/MonoBehaviour.html" style="color: rgb(20, 93, 123); text-decoration: none;">MonoBehaviour</a> { void FixedUpdate() { rigidbody.AddForce(<a target=_blank target="_blank" href="http://blog.csdn.net/monzart7an/article/details/Vector3-up.html" style="color: rgb(20, 93, 123); text-decoration: none;">Vector3.up</a>); } }</em>
相关文章推荐
- Kinect结合Unity3D引擎开发体感游戏(一)
- 三种禁用FileSystemObject组件的方法
- 用vbs列出机器上所有能调用的组件
- 剖析ASP.NET MVC的DependencyResolver组件
- asp水印组件之AspJpeg的结合代码实例
- Node.js编写组件的三种实现方式
- Bootstrap表单组件教程详解
- JS上传组件FileUpload自定义模板的使用方法
- 适用于WebForm Mvc的Pager分页组件C#实现
- js组件SlotMachine实现图片切换效果制作抽奖系统
- Android搜索框组件SearchView的基本使用方法
- 浅析Bootstrap缩略图组件与警示框组件
- 第九章之路径分页标签与徽章组件
- JS组件Bootstrap ContextMenu右键菜单使用方法
- JavaScript资源预加载组件和滑屏组件的使用推荐
- 浅谈Sticky组件的改进实现
- 编写轻量ajax组件01-与webform平台上的各种实现方式比较
- Ajax核心XMLHTTP组件资料第1/2页
- JS组件系列之Bootstrap Icon图标选择组件