예제 #1
0
        public void Read(AssetReader reader)
        {
            RootX.Read(reader);
            if (IsVector3(reader.Version))
            {
                LookAtPosition.Read3(reader);
            }
            else
            {
                LookAtPosition.Read(reader);
            }
            LookAtWeight.Read(reader);
            m_goalArray = reader.ReadAssetArray <HumanGoal>();
            LeftHandPose.Read(reader);
            RightHandPose.Read(reader);
            m_doFArray = reader.ReadSingleArray();

            if (IsReadTArray(reader.Version))
            {
                if (IsVector3(reader.Version))
                {
                    m_TDoFArray = reader.ReadVector3Array();
                }
                else
                {
                    m_TDoFArray = reader.ReadAssetArray <Vector4f>();
                }
            }
        }
예제 #2
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case Forward.NAME:
                var nodeForward = new Forward() as INode;
                return(new Node <INode> (nodeForward));

            case Vec3.NAME:
                INode nodeVec3 = new Vec3() as INode;
                return(new Node <INode>(nodeVec3));

            case SplitVec3.NAME:
                INode nodeSplitVec3 = new SplitVec3() as INode;
                return(new Node <INode>(nodeSplitVec3));

            case LookAtPosition.NAME:
                INode nodeLookAt = new LookAtPosition() as INode;
                return(new Node <INode>(nodeLookAt));

            case ScreenToWorld.NAME:
                INode nodeScreenToWorld = new ScreenToWorld() as INode;
                return(new Node <INode>(nodeScreenToWorld));

            default:
                return(null);
            }
        }
예제 #3
0
        public void Read(AssetStream stream)
        {
            RootX.Read(stream);
            if (IsVector3(stream.Version))
            {
                LookAtPosition.Read3(stream);
            }
            else
            {
                LookAtPosition.Read(stream);
            }
            LookAtWeight.Read(stream);
            m_goalArray = stream.ReadArray <HumanGoal>();
            LeftHandPose.Read(stream);
            RightHandPose.Read(stream);
            m_doFArray = stream.ReadSingleArray();

            if (IsReadTArray(stream.Version))
            {
                if (IsVector3(stream.Version))
                {
                    m_TDoFArray = stream.ReadVector3Array();
                }
                else
                {
                    m_TDoFArray = stream.ReadArray <Vector4f>();
                }
            }
        }
예제 #4
0
 private void OnEnable()
 {
     _stats  = GetComponent <EnemyStats>();
     _body   = GetComponent <Rigidbody2D>();
     _lookAt = GetComponent <LookAtPosition>();
     _player = GameObject.FindWithTag("Player").transform;
     OnRest.Invoke();
 }
예제 #5
0
        public void Rotate(Line3 pLine, float radians)
        {
            var vector = (pLine.Point2 - pLine.Point1).NormalizeSafe();

            Position       -= pLine.Point1;
            LookAtPosition -= pLine.Point1;
            UpPosition     -= pLine.Point1;
            Position        = Position.RotateAround(vector, radians);
            LookAtPosition  = LookAtPosition.RotateAround(vector, radians);
            UpPosition      = UpPosition.RotateAround(vector, radians);
            Position       += pLine.Point1;
            LookAtPosition += pLine.Point1;
            UpPosition     += pLine.Point1;
        }
예제 #6
0
        public void RotateAroundUpPositionWorld(Vector3 radians)
        {
            var matrix = Matrix3.Identity;

            matrix = matrix.RotateAroundWorldAxisX(radians.X);
            matrix = matrix.RotateAroundWorldAxisY(radians.Y);
            matrix = matrix.RotateAroundWorldAxisZ(radians.Z);

            LookAtPosition -= UpPosition;
            LookAtPosition  = LookAtPosition.Transform(matrix);
            LookAtPosition += UpPosition;

            Position -= UpPosition;
            Position  = Position.Transform(matrix);
            Position += UpPosition;
        }
예제 #7
0
        public override void Serialize(LittleEndianWriter writer)
        {
            int itemCount = Items.Length;

            if (itemCount > 0xFF)
            {
                throw new IOException("More than 255 items!");
            }

            writer.WriteByte((byte)itemCount);
            foreach (var item in Items)
            {
                item.Serialize(writer);
            }

            if (ShieldValues != null)
            {
                writer.WriteBool(true);
                ShieldValues.Serialize(writer);
            }
            else
            {
                writer.WriteBool(false);
            }

            writer.WriteInt(CharacterDataStack.Length);

            foreach (var data in CharacterDataStack)
            {
                data.Serialize(writer);
            }

            writer.WriteUInt(LookAtNetId);
            writer.WriteByte((byte)LookAtType);
            LookAtPosition.Serialize(writer);

            writer.WriteInt(BuffCount.Count);

            foreach (var kvp in BuffCount)
            {
                writer.WriteByte(kvp.Key);
                writer.WriteInt(kvp.Value);
            }

            writer.WriteBool(UnknownIsHero);
        }
예제 #8
0
        public void RotateAroundPosition(Vector3 radians)
        {
            var matrix          = Matrix3.LookAt((LookAtPosition - Position), (UpPosition - Position));
            var matrixTranspose = matrix.Transpose();

            matrix = matrix.RotateAroundAxisX(radians.X);
            matrix = matrix.RotateAroundAxisY(radians.Y);
            matrix = matrix.RotateAroundAxisZ(radians.Z);

            LookAtPosition -= Position;
            LookAtPosition  = LookAtPosition.Transform(matrixTranspose);
            LookAtPosition  = LookAtPosition.Transform(matrix);
            LookAtPosition += Position;

            UpPosition -= Position;
            UpPosition  = UpPosition.Transform(matrixTranspose);
            UpPosition  = UpPosition.Transform(matrix);
            UpPosition += Position;
        }
예제 #9
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case DeltaTime.NAME:
                INode nodeDeltaTime = new DeltaTime() as INode;
                return(new Node <INode> (nodeDeltaTime));

            case KeyDown.NAME:
                INode nodeKeyDown = new KeyDown() as INode;
                return(new Node <INode> (nodeKeyDown));

            case Transform.NAME:
                INode nodeTransform = new Transform() as INode;
                return(new Node <INode> (nodeTransform));

            case Vec3.NAME:
                INode nodeVec3 = new Vec3() as INode;
                return(new Node <INode> (nodeVec3));

            case Key.NAME:
                INode nodeKey = new Key() as INode;
                return(new Node <INode> (nodeKey));

            case FindByName.NAME:
                INode nodeFindByName = new FindByName() as INode;
                return(new Node <INode> (nodeFindByName));

            case ObjectAttribute.NAME:
                INode nodeObjectAttribute = new ObjectAttribute() as INode;
                return(new Node <INode> (nodeObjectAttribute));

            case SplitVec3.NAME:
                INode nodeSplitVec3 = new SplitVec3() as INode;
                return(new Node <INode> (nodeSplitVec3));

            case Update.NAME:
                INode nodeUpdate = new Update() as INode;
                return(new Node <INode> (nodeUpdate));

            case LateUpdate.NAME:
                INode nodeLateUpdate = new LateUpdate() as INode;
                return(new Node <INode> (nodeLateUpdate));

            case MouseButtonDown.NAME:
                INode nodeMouseButtonDown = new MouseButtonDown() as INode;
                return(new Node <INode> (nodeMouseButtonDown));

            case PlayerPreferences.NAME:
                INode nodePlayerPref = new PlayerPreferences() as INode;
                return(new Node <INode> (nodePlayerPref));

            case SetActive.NAME:
                INode nodeSetActive = new SetActive() as INode;
                return(new Node <INode> (nodeSetActive));

            case LoadScene.NAME:
                INode nodeLoadScene = new LoadScene() as INode;
                return(new Node <INode> (nodeLoadScene));

            case MousePosition.NAME:
                INode nodeMousePosition = new MousePosition() as INode;
                return(new Node <INode> (nodeMousePosition));

            case ScreenToWorld.NAME:
                INode nodeScreenToWorld = new ScreenToWorld() as INode;
                return(new Node <INode> (nodeScreenToWorld));

            case LookAtPosition.NAME:
                INode nodeLookAt = new LookAtPosition() as INode;
                return(new Node <INode> (nodeLookAt));

            case GetComponent.NAME:
                INode nodeGetComponent = new GetComponent() as INode;
                return(new Node <INode> (nodeGetComponent));

            case Color.NAME:
                INode nodeColor = new Color() as INode;
                return(new Node <INode> (nodeColor));

            case Instantiate.NAME:
                INode instantiate = new Instantiate() as INode;
                return(new Node <INode> (instantiate));

            case MaterialColor.NAME:
                INode materialColor = new MaterialColor()  as INode;
                return(new Node <INode> (materialColor));

            case Quit.NAME:
                INode quit = new Quit() as INode;
                return(new Node <INode> (quit));

            case LoadTextFileAtPath.NAME:
                INode loadTextFileAtPath = new LoadTextFileAtPath() as INode;
                return(new Node <INode>(loadTextFileAtPath));

            case StreamingAssetsPath.NAME:
                INode streamingAssetsPath = new StreamingAssetsPath() as INode;
                return(new Node <INode>(streamingAssetsPath));

            case AddConstellationBehaviourFromJSON.NAME:
                INode addConstellationBehaviourFromJSON = new AddConstellationBehaviourFromJSON() as INode;
                return(new Node <INode>(addConstellationBehaviourFromJSON));

            default:
                return(null);
            }
        }
예제 #10
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case DeltaTime.NAME:
                INode nodeDeltaTime = new DeltaTime() as INode;
                return(new Node <INode> (nodeDeltaTime));

            case KeyDown.NAME:
                INode nodeKeyDown = new KeyDown() as INode;
                return(new Node <INode> (nodeKeyDown));

            case Transform.NAME:
                INode nodeTransform = new Transform() as INode;
                return(new Node <INode> (nodeTransform));

            case Vec3.NAME:
                INode nodeVec3 = new Vec3() as INode;
                return(new Node <INode> (nodeVec3));

            case Key.NAME:
                INode nodeKey = new Key() as INode;
                return(new Node <INode> (nodeKey));

            case FindByName.NAME:
                INode nodeFindByName = new FindByName() as INode;
                return(new Node <INode> (nodeFindByName));

            case ObjectAttribute.NAME:
                INode nodeObjectAttribute = new ObjectAttribute() as INode;
                return(new Node <INode> (nodeObjectAttribute));

            case SplitVec3.NAME:
                INode nodeSplitVec3 = new SplitVec3() as INode;
                return(new Node <INode> (nodeSplitVec3));

            case Update.NAME:
                INode nodeUpdate = new Update() as INode;
                return(new Node <INode> (nodeUpdate));

            case LateUpdate.NAME:
                INode nodeLateUpdate = new LateUpdate() as INode;
                return(new Node <INode> (nodeLateUpdate));

            case MouseButtonDown.NAME:
                INode nodeMouseButtonDown = new MouseButtonDown() as INode;
                return(new Node <INode> (nodeMouseButtonDown));

            case PlayerPreferences.NAME:
                INode nodePlayerPref = new PlayerPreferences() as INode;
                return(new Node <INode> (nodePlayerPref));

            case SetActive.NAME:
                INode nodeSetActive = new SetActive() as INode;
                return(new Node <INode> (nodeSetActive));

            case LoadScene.NAME:
                INode nodeLoadScene = new LoadScene() as INode;
                return(new Node <INode> (nodeLoadScene));

            case MousePosition.NAME:
                INode nodeMousePosition = new MousePosition() as INode;
                return(new Node <INode> (nodeMousePosition));

            case ScreenToWorld.NAME:
                INode nodeScreenToWorld = new ScreenToWorld() as INode;
                return(new Node <INode> (nodeScreenToWorld));

            case LookAtPosition.NAME:
                INode nodeLookAt = new LookAtPosition() as INode;
                return(new Node <INode> (nodeLookAt));

            case GetComponent.NAME:
                INode nodeGetComponent = new GetComponent() as INode;
                return(new Node <INode> (nodeGetComponent));

            case Color.NAME:
                INode nodeColor = new Color() as INode;
                return(new Node <INode> (nodeColor));

            default:
                return(null);
            }
        }
예제 #11
0
파일: Boid.cs 프로젝트: Zerhe/IA
 private void Awake()
 {
     lp = GetComponent <LookAtPosition>();
 }