/// <summary> /// tfCenter 位置に出現する。 /// </summary> static public _Action3 spawnCenterPoint(_CharacterClassDefinition defCh, ref SpawnState state, ref SpawnInfo spawnInfo) { var pos = spawnInfo.tfCenter.position; var dirxz = Random.insideUnitCircle; var rot = Quaternion.LookRotation(new Vector3(dirxz.x, 0.0f, dirxz.y), Vector3.up); return(defCh.instantiate(pos, rot)); }
/// <summary> /// グループテリトリーサークル内のランダムな地上位置に出現する。 /// </summary> static public _Action3 spawnOnGround(_CharacterClassDefinition defCh, ref SpawnState state, ref SpawnInfo spawnInfo) { var pos = spawnInfo.group.getRandomPointOnCircle(); var ray = new Ray(new Vector3(pos.x, 1024.0f, pos.z), Vector3.down); var hit = new RaycastHit(); if (Physics.Raycast(ray, out hit, float.PositiveInfinity, UserLayer.groundForEnemy)) { pos = hit.point; } var dirxz = Random.insideUnitCircle; var rot = Quaternion.LookRotation(new Vector3(dirxz.x, 0.0f, dirxz.y), Vector3.up); return(defCh.instantiate(pos, rot)); }
/// <summary> /// tfCenter から渦を巻くように出現する。 /// 最後のメンバーの出現位置が、グループテリトリーの半径と同じ距離になるように調整される。 /// </summary> static public _Action3 spawnScrew(_CharacterClassDefinition defCh, ref SpawnState state, ref SpawnInfo spawnInfo) { return(null); }
/// <summary> /// キャラクター生成定義を生成する。 /// </summary> /// <param name="defCh">生成するキャラクターの定義</param> /// /// <param name="ch">生成されるキャラクターの性格定義</param> /// /// <param name="weight">生成確率や生成数にかかわる重み</param> /// public EntryUnit(_CharacterClassDefinition defCh, _Action3.CharacterInfo ch, float weight) { this.definition = defCh; this.ch = ch; this.weight = weight; }
/// <summary> /// グループテリトリースフィア内のランダムな壁面上に出現する。 /// 位置は tfCenter からのキャストによる。キャスト範囲に壁面がなければ、空間位置に出現する。 /// </summary> static public _Action3 spqwnAroundOnWall(_CharacterClassDefinition defCh, ref SpawnState state, ref SpawnInfo spawnInfo) { return(null); }