一、在编辑器上面添加一个组件。这个不用多说。
二、在脚本中利用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
Adds a component class named className
to the game object.
using UnityEngine; using System.Collections; public class Example : MonoBehaviour { public SphereCollider sc; void Example() { gameObject.AddComponent("FoobarScript"); sc = gameObject.AddComponent("SphereCollider") as SphereCollider; } }
Adds a component class of type componentType
to the game object. C# Users can use a generic version.
no example available in C#
三、利用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
The RequireComponent attribute lets automatically add required component as a dependency.
// Mark the PlayerScript as requiring a rigidbody in the game object. @script RequireComponent(Rigidbody)function FixedUpdate() { rigidbody.AddForce(Vector3.up); }
[RequireComponent (typeof (Rigidbody))] public class PlayerScript : MonoBehaviour { void FixedUpdate() { rigidbody.AddForce(Vector3.up); } }