Ejemplo n.º 1
0
        /// <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));
        }
Ejemplo n.º 2
0
        /// <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));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// tfCenter から渦を巻くように出現する。
 /// 最後のメンバーの出現位置が、グループテリトリーの半径と同じ距離になるように調整される。
 /// </summary>
 static public _Action3 spawnScrew(_CharacterClassDefinition defCh, ref SpawnState state, ref SpawnInfo spawnInfo)
 {
     return(null);
 }
Ejemplo n.º 4
0
 /// <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;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// グループテリトリースフィア内のランダムな壁面上に出現する。
 /// 位置は tfCenter からのキャストによる。キャスト範囲に壁面がなければ、空間位置に出現する。
 /// </summary>
 static public _Action3 spqwnAroundOnWall(_CharacterClassDefinition defCh, ref SpawnState state, ref SpawnInfo spawnInfo)
 {
     return(null);
 }