void Awake() { if (m_event == null) { m_event = new ColliderEvent(); } }
void RespondIfValid(Collider other, ColliderEvent response) { if (IsValid(other)) { response.Invoke(other); } }
private void ExecuteEvent(ColliderEvent ce, object arg) { if (m_CollisionActions.ContainsKey(ce)) { m_CollisionActions[ce].ForEach((a) => { a(arg); }); } }
// Use this for initialization void Start() { charState = this.GetComponent <TestChar>(); PCon = this.GetComponent <PlayerController>(); NT = this.GetComponent <NotThroughFighter>(); CEventEne = PCon.fightEnemy.GetComponent <ColliderEvent>(); }
void Awake() { //スクリプト取得 HPDir = this.GetComponent <HPDirectorScript>(); ASScript = Opponent.GetComponent <ArtsStateScript>(); CEvent = this.GetComponent <ColliderEvent>(); SEScript = this.GetComponent <SetEffectScript>(); }
private void OnCollisionEvent(Collider2D other, ColliderEvent evt) { if (CheckFilter(other)) { return; } if (evt == ColliderEvent.Exit) { staying.Remove(other); return; } if (mode == DamageMode.Single) { bool isNew = false; if (!staying.TryGetValue(other, out StayInfo info)) { // Track new object. info = new StayInfo { collider = other, damageTimer = repeatDamageTime, damagedOnce = false, }; staying.Add(other, info); isNew = true; } // Initial (enter) damage. if (!info.damagedOnce) { info.damagedOnce = DoDamage(info.collider); } if (!isNew && repeatSingleDamage) { // Repeating damage. info.damageTimer -= Time.deltaTime; if (info.damageTimer <= 0) { if (DoDamage(info.collider)) { info.damageTimer = repeatDamageTime; } } } } else // DamageMode.Continuous { if (evt == ColliderEvent.Stay) { DoDamage(other); } } }
public void Add(ColliderEvent ce, Action<object> action) { if (!m_CollisionActions.ContainsKey(ce)) { m_CollisionActions.Add(ce, new List<Action<object>>()); } m_CollisionActions[ce].Add(action); }
public void RemoveEventListener(ColliderEvent inEventType) { switch (inEventType) { case ColliderEvent.OnHitEnter: _onHitEnter = null; break; case ColliderEvent.OnHitStay: _onHitStay = null; break; case ColliderEvent.OnHitExit: _onHitExit = null; break; } }
public void AddEventListener(ColliderEvent inEventType, Action <GameObject> inCallback) { switch (inEventType) { case ColliderEvent.OnHitEnter: _onHitEnter = inCallback; break; case ColliderEvent.OnHitStay: _onHitStay = inCallback; break; case ColliderEvent.OnHitExit: _onHitExit = inCallback; break; } }
public override void OnInspectorGUI() { serializedObject.Update(); // DrawDefaultInspector(); ColliderEvent script = (ColliderEvent)target; EditorGUILayout.PropertyField(useTagFilter); if (script.UseTagFilter) { EditorGUILayout.PropertyField(tags); } EditorGUILayout.PropertyField(useLayerFilter); if (script.UseLayerFilter) { EditorGUILayout.PropertyField(layerMask); } EditorGUILayout.PropertyField(useComponentFilter); if (script.UseComponentFilter) { EditorGUILayout.PropertyField(componentType); } EditorGUILayout.PropertyField(useParentComponentFilter); if (script.UseParentComponentFilter) { EditorGUILayout.PropertyField(parentComponentType); } EditorGUILayout.PropertyField(useChildComponentFilter); if (script.UseChildComponentFilter) { EditorGUILayout.PropertyField(childComponentType); } EditorGUILayout.PropertyField(onCollide); EditorGUILayout.PropertyField(onStay); EditorGUILayout.PropertyField(onExit); serializedObject.ApplyModifiedProperties(); }
public static ColliderEvent AddColliderEvent(Transform t, bool withRigibody = false, bool trigger = true) { if (t == null) { return(null); } ColliderEvent cBase = t.GetComponent <ColliderEvent>(); if (!cBase) { cBase = t.gameObject.AddComponent <ColliderEvent>(); } AddBoxCollider(t, trigger); if (withRigibody) { AddRigibody(t); } return(cBase); }
// Use this for initialization void Start() { //ディレクタースクリプト取得 ASScriptEne = Pcont.fightEnemy.GetComponent <ArtsStateScript>(); CEvent = this.GetComponent <ColliderEvent>(); CEventEne = Pcont.fightEnemy.GetComponent <ColliderEvent>(); HPDir = this.GetComponent <HPDirectorScript>(); DEGScript = this.GetComponent <DebugGetEnemyScript>(); SEScript = this.GetComponent <SetEffectScript>(); GScript = this.GetComponent <GuardScript>(); //コライダーのスクリプトを取得 for (int i = 0; i < CEvent.HClid.Count; i++) { col.Add(CEvent.HClid[i]); react.Add(col[i].GetComponent <ColliderReact>()); } AI = gameObject.GetComponent <EnemyAI>(); }
void Start() { colliderEvent = GameObject.Find("Character").GetComponent <ColliderEvent>(); float yPosition = 60f; float xPosition = -155f; for (int i = 1; i <= 12; i++) { shuffleNum = rnd.Next(0, cardColors.Count); var tmp = Instantiate(card, new Vector3(0, 0, 0), Quaternion.identity, GameObject.Find("GameCanvas").transform); tmp.transform.localPosition = new Vector3(xPosition, yPosition, 0); tmp.GetComponent <Card>().colorFace = cardColors[shuffleNum]; tmp.GetComponent <Card>().SetNumber(cardNumbers[shuffleNum]); cards.Add(tmp); cardColors.RemoveAt(shuffleNum); cardNumbers.RemoveAt(shuffleNum); xPosition += 100f; if (i % 4 == 0) { xPosition = -155f; yPosition -= 100f; } } }
// Use this for initialization void Start() { animator = GetComponent <Animator>(); //入力履歴の設定 history.Clear(); for (int i = 0; i < commandCount; i++) { history.Add("N"); } inputHistory.Clear(); for (int i = 0; i < numInputHistory; i++) { inputHistory.Add(""); } inputDKey = 5; inputDKeyOld = inputDKey; //if (controller > 0) controllerName = Input.GetJoystickNames()[controller - 1]; //Debug.Log(Input.GetJoystickNames()[0]); //Debug.Log(Input.GetJoystickNames()[1]); if (isModel) { CEvent = this.GetComponent <ColliderEvent>(); TChar = this.GetComponent <TestChar>(); audio = GetComponent <AudioSource>(); parent = this.transform.parent.gameObject; //battleDirector = this.GetComponent<BattleDirector>(); } }
// メイドの親子付け開始 private void _oyakoStart(Maid maid) { if (maid == null || maid.body0 == null || !maid.body0.isLoadedBody) { MSG.Error("メイド" + (maid ? maid.name : "") + "は初期化されていません。"); return; } // 必要なオブジェクトが無ければ作る _makeObject(); m_maid = maid; // 掴み用コライダー作成 { var mcc = MaidColliderCollect.AddColliderCollect(m_maid); if (mcc) { var maidColliders = mcc.GetCollider(MaidColliderCollect.ColliderType.Grab); // コライダー配列が無いか、0個の場合、もしくはシーン開始から最初に親子付けされた場合 if (maidColliders == null || maidColliders.Count == 0 || !m_addColMaid.Contains(m_maid)) { maidColliders = mcc.AddCollider(MaidColliderCollect.ColliderType.Grab); for (int cnt = 0; cnt < maidColliders.Count; cnt++) { ColliderEvent action = maidColliders[cnt].gameObject.AddComponent <ColliderEvent>(); action.onMouseUp = m_maid.OnMouseUp; #if DISP_COLLIDER maidColliders[cnt].gameObject.AddComponent <HC.Debug.ColliderVisualizer>().Initialize(HC.Debug.ColliderVisualizer.VisualizerColorType.Red, "", 8); #endif // DISP_COLLIDER } // コライダーを追加したメイドさんを覚えておく m_addColMaid.Add(m_maid); } } } // メイドさん操作用のTransformを取得 m_maid_trans = _getTargetTransform(m_maid.gameObject); if (m_trans_dummy == null) { MSG.Error("m_trans_dummy がNULLです。"); } if (m_maid_trans == null) { MSG.Error("m_maid_trans がNULLです。"); } if (m_maid_trans.parent == null) { MSG.Error("m_maid_trans.parent がNULLです。"); } if (m_trans_dummy && m_maid_trans && m_maid_trans.parent) { // 掴んだ時にメイドさんが飛ばない様にする _resetTransDummyPos(); // くっついている間はハンドオブジェクトが邪魔なので見えない様にする _hideHandObject(); // 親子付け開始 IsOyako = true; IsGripping = false; MSG.DebugPrint(m_maid.name + "の親子付け開始"); } }
public void removeEventHandler(ColliderEvent eventType, Ps.Utils.EventHandler <Collision> handler) { dispatcher.removeEventHandler(eventType, handler); }
public override void OnInspectorGUI() { script = (ColliderEvent)target; EditorGUILayout.Space(); script.mytype = (ColliderEvent.type)EditorGUILayout.EnumPopup("Collider type", script.mytype); script.tagname = EditorGUILayout.TextField("Tag name", script.tagname); SelectType(); EditorGUILayout.Space(); eventfold = EditorGUILayout.Foldout(eventfold, "Events"); if (eventfold) { EditorGUILayout.LabelField("-----------------------"); script.EnableVoid = EditorGUILayout.Toggle("void events", script.EnableVoid); script.EnableBool = EditorGUILayout.Toggle("Bool events", script.EnableBool); script.EnableInt = EditorGUILayout.Toggle("int events", script.EnableInt); script.EnableFloat = EditorGUILayout.Toggle("float events", script.EnableFloat); script.EnableFloatArray = EditorGUILayout.Toggle("float array events", script.EnableFloatArray); script.EnableColor = EditorGUILayout.Toggle("color events", script.EnableColor); if (script.EnableBool) { SerializedProperty onCheck = serializedObject.FindProperty("boolevents"); EditorGUILayout.PropertyField(onCheck); script.boolvalue = EditorGUILayout.Toggle("Input bool value", script.boolvalue); } if (script.EnableInt) { EditorGUILayout.Space(); SerializedProperty onCheck = serializedObject.FindProperty("intevents"); EditorGUILayout.PropertyField(onCheck); script.intvalue = EditorGUILayout.IntField("Input int value", script.intvalue); } if (script.EnableFloat) { EditorGUILayout.Space(); SerializedProperty onCheck = serializedObject.FindProperty("floatevents"); EditorGUILayout.PropertyField(onCheck); script.floatvalue = EditorGUILayout.FloatField("Input float value", script.floatvalue); } if (script.EnableFloatArray) { EditorGUILayout.Space(); SerializedProperty onCheck = serializedObject.FindProperty("floatarratevents"); EditorGUILayout.PropertyField(onCheck); SerializedProperty property = serializedObject.FindProperty("floatarrayvalue"); EditorGUILayout.PropertyField(property, new GUIContent("Input floatarray value"), true); } if (script.EnableColor) { EditorGUILayout.Space(); SerializedProperty onCheck = serializedObject.FindProperty("colorevents"); EditorGUILayout.PropertyField(onCheck); script.colorvalue = EditorGUILayout.ColorField("Input color value", script.colorvalue); } if (script.EnableVoid) { EditorGUILayout.Space(); SerializedProperty onCheck = serializedObject.FindProperty("voidevents"); EditorGUILayout.PropertyField(onCheck); } if (GUI.changed) { serializedObject.ApplyModifiedProperties(); } } }